243 votes

Deprecation warning dans le moment js

J'ai besoin d'aide, je reçois une alerte sur mon code qui a une valeur fournie n'est pas reconnu en format ISO. et j'ai modifier ma variable aujourd'hui, au moment de fonction et encore il ne fonctionne pas.

Voici le message d'erreur

La dépréciation avertissement: la valeur fournie n'est pas reconnu en format ISO. moment de la construction revient à js Date(), qui n'est pas fiable dans tous les navigateurs et les versions. Non ISO formats de date sont découragés et sera supprimée dans la prochaine version majeure. Veuillez vous référer à http://momentjs.com/guides/#/warnings/js-date/ pour plus d'info. Arguments: [0] _isAMomentObject: true, _isUTC: true, _useUTC: true, _l: undefined, _i: 2016-9-26 19:30, _f: undefined, _strict: undefined, _locale: [object object]

 var entryDate = new Date();
 var currentDate = entryDate.getDate();

        function between(x,min,max) { 
            return x.valueOf() >= min.valueOf() && x < max.valueOf();
        };

        $("#custom1").change(function(){
            if ($("#custom1 :selected").val() == "AU" ) {
                var keyword = "";

                var aus1_s = moment.tz('2016-9-26 19:30', 'Australia/Sydney');              
                var aus2_s = moment.tz('2016-10-2 19:30', 'Australia/Sydney');              
                var aus3_s = moment.tz('2016-10-9 19:30', 'Australia/Sydney');                  
                var aus4_s = moment.tz('2016-10-16 19:30', 'Australia/Sydney');                 
                var aus5_s = moment.tz('2016-10-23 19:30', 'Australia/Sydney');
                var aus6_s = moment.tz('2016-10-30 19:30', 'Australia/Sydney');
                var aus6_e = moment.tz('2016-11-5 19:30', 'Australia/Sydney');
            } 

            else if ($("#custom1 :selected").val() == "NZ" ) {
                var aus1_s =  moment.tz('2016-9-28 20:30', 'Pacific/Auckland');
                var aus2_s =  moment.tz('2016-10-4 20:30', 'Pacific/Auckland');
                var aus3_s =  moment.tz('2016-10-11 20:30', 'Pacific/Auckland');
                var aus4_s =  moment.tz('2016-10-18 20:30', 'Pacific/Auckland');
                var aus5_s =  moment.tz('2016-10-25 20:30', 'Pacific/Auckland');
                var aus6_s =  moment.tz('2016-11-2 20:30', 'Pacific/Auckland');
                var aus6_e =  moment.tz('2016-11-9 20:30', 'Pacific/Auckland');
            }

            else {
                $("#entryEquals").val("");
                return false;
            }

           var today = moment();

            switch (true) {
                case between (today, aus1_s, aus2_s):
                keyword = "RElYT04=";
                break;

                case between (today, aus2_s, aus3_s):
                keyword = "QlJJREU=";
                break;

                case between (today, aus3_s, aus4_s):
                keyword = "U1lETkVZ";
                break;

                case between (today, aus4_s, aus5_s):
                keyword = "R1JPT00=";
                break;

                case between (today, aus5_s, aus6_s):
                keyword = "V0VERElORw==";
                break;

                case between (today, aus6_s, aus6_e):
                keyword = "VExD";
                break;

                default:
                $("#entryEquals").val("");
                break;
            }

        $("#entryEquals").val(keyword);

        });

250voto

christo8989 Points 2303

Découvrez tous leurs génial!

Ici est l'endroit où ils discutent de la Message d'Avertissement.

Chaîne + Format

Avertissement: la prise en charge du Navigateur pour l'analyse de chaînes est incohérent. Car il n'y a pas de spécification sur les formats pris en charge, ce qui fonctionne dans certains navigateurs ne fonctionnent pas dans les autres navigateurs.

Pour des résultats cohérents analyse rien d'autre que la norme ISO 8601 chaînes, vous devez utiliser la Chaîne de + Format.

moment("12-25-1995", "MM-DD-YYYY");

Chaîne + Formats (plusieurs formats)

Si vous avez plus d'un format, vérifiez leur Chaîne + Formats (avec un "s").

Si vous ne connaissez pas le format exact d'une chaîne d'entrée, mais sais que ça pourrait être l'un des beaucoup de, vous pouvez utiliser un tableau de formats.

moment("12-25-1995", ["MM-DD-YYYY", "YYYY-MM-DD"]);

Veuillez commander la documentation pour quelque chose de plus spécifique.

Fuseau horaire

La caisse d'Analyse dans la Zone, l'équivalent de la documentation pour les fuseaux horaires.

Le moment.tz constructeur prend toutes les mêmes arguments que le moment constructeur, mais utilise le dernier argument comme un temps identificateur de la zone.

var b = moment.tz("May 12th 2014 8PM", "MMM Do YYYY hA", "America/Toronto");

MODIFIER

//...
var dateFormat = "YYYY-M-D H:m"; //<-------- This part will get rid of the warning.
var aus1_s, aus2_s, aus3_s, aus4_s, aus5_s, aus6_s, aus6_e;
if ($("#custom1 :selected").val() == "AU" ) {
    var region = 'Australia/Sydney';

    aus1_s = moment.tz('2016-9-26 19:30', dateFormat, region);              
    aus2_s = moment.tz('2016-10-2 19:30', dateFormat, region);              
    aus3_s = moment.tz('2016-10-9 19:30', dateFormat, region);                  
    aus4_s = moment.tz('2016-10-16 19:30', dateFormat, region);                 
    aus5_s = moment.tz('2016-10-23 19:30', dateFormat, region);
    aus6_s = moment.tz('2016-10-30 19:30', dateFormat, region);
    aus6_e = moment.tz('2016-11-5 19:30', dateFormat, region);
} else if ($("#custom1 :selected").val() == "NZ" ) {
    var region = 'Pacific/Auckland';

    aus1_s =  moment.tz('2016-9-28 20:30', dateFormat, region);
    aus2_s =  moment.tz('2016-10-4 20:30', dateFormat, region);
    aus3_s =  moment.tz('2016-10-11 20:30', dateFormat, region);
    aus4_s =  moment.tz('2016-10-18 20:30', dateFormat, region);
    aus5_s =  moment.tz('2016-10-25 20:30', dateFormat, region);
    aus6_s =  moment.tz('2016-11-2 20:30', dateFormat, region);
    aus6_e =  moment.tz('2016-11-9 20:30', dateFormat, region);
}
//...

97voto

Jigar Bhatt Points 170

Faire moment (nouvelle date ("27/04/2016")). Format .... semble fonctionner. Ça marche pour moi.

33voto

MD. ABU TALHA Points 85

utiliser moment dans votre fonction comme ça

  moment(new Date(date)).format('MM/DD/YYYY')
 

22voto

Shahzeb Khan Points 91

J'ai rencontré cette erreur parce que j'essayais de passer une date de localStorage . Transmettre la date dans un nouvel objet Date , puis appeler .toISOString () ont été décisifs :

 const dateFromStorage = localStorage.getItem('someDate');
const date = new Date(dateFromStorage);
const momentDate = moment(date.toISOString());
 

Ceci a supprimé tous les avertissements dans la console.

7voto

Mise à JOUR

Dépréciation d'avertissement se produit lorsque vous utilisez moment de la création de l'objet, var today = moment();.

Si cet avertissement est d'accord avec vous, alors j'ai une méthode plus simple.

Ne pas utiliser date objet à partir d' js utilisation moment à la place. Utiliser, par exemple, moment() pour obtenir la date actuelle.

Ou de convertir l' js date objet d' moment date. Vous pouvez tout simplement le faire en spécifiant le format de votre js date d'objet.

c'est à dire, moment("js date", "js date format");

par exemple:

moment("2014 04 25", "YYYY MM DD");

(MAIS VOUS ne POUVEZ UTILISER CETTE MÉTHODE JUSQU'à ce qu'IL s'est DÉPRÉCIÉ, ce qui peut être amorties à compter de moment dans le futur)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X