La construction de la date momentutilise 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 momentobjet 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' momentobjet 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 Dated'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.jsest 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
momentconstruction.
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 Datefur 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.