La construction de la date moment
utilise en interne le new Date()
dans le javascript. La new Date()
construction reconnaît la chaîne de date aux formats RFC2822 ou ISO dans tous les navigateurs. Lors de la construction d'un moment
objet dont la date n'est pas dans ces formats, l'avertissement d'obsolescence est émis.
Bien que les avertissements d'obsolescence soient lancés, pour certains formats, l' moment
objet sera construit avec succès dans Chrome, mais pas dans Firefox ou Safari. Pour cette raison, le traitement de la date dans Chrome peut donner des résultats comme prévu (pas tout le temps) et en ajouter Invalid Date
d'autres.
Considérez 02.02.2018
,
Chrome - moment("02.02.2018")._d
->Fri Feb 02 2018 00:00:00 GMT+0530 (India Standard Time)
Firefox - moment("02.02.2018")._d
->Invalid Date
Safari - moment("02.02.2018")._d
->Invalid Date
Donc, le moment.js
est utilisé à vos propres risques au cas où les formats recommandés / standard ne seraient pas utilisés.
Pour supprimer les avertissements d'obsolescence ,
- Comme suggéré par @Joe Wilson dans la réponse précédente, indiquez le format de date lors de la
moment
construction.
Exemple : moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- Donnez la date au format ISO ou RFC2822.
Exemple: moment("2018-02-01T18:30:00.000Z")
- Format ISO
moment("Thu, 01 Feb 2018 18:30:00 GMT")
- Format RFC2822 - Format dans Github
- Comme suggéré par @niutech dans la réponse précédente, définissez
moment.suppressDeprecationWarnings = true;
Je suggère d'écraser le repli d'entrée dans le moment.
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
Comme (3) supprimera tous les avertissements, (4) supprimera uniquement le repli de construction de date. En utilisant (4), vous obtiendrez au Invalid Date
fur et à mesure que l'interne new Date()
est utilisé et que d'autres dépréciations peuvent être vues dans la console, ainsi le moment peut être mis à niveau ou les méthodes obsolètes peuvent être remplacées dans l'application.