La costruzione della data momentutilizza internamente il file new Date()nel javascript. La new Date()costruzione riconosce la stringa della data nei formati RFC2822 o ISO in tutti i browser. Quando si costruisce un momentoggetto con data non in questi formati, viene lanciato l'avviso di deprecazione.
Sebbene vengano lanciati gli avvisi di deprecazione, per alcuni formati, l' momentoggetto verrà costruito correttamente in Chrome, ma non in Firefox o Safari. A causa di ciò, l'elaborazione della data in Chrome può dare risultati come previsto (non sempre) e generare Invalid Datealtri.
Si consideri, 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
Quindi moment.jsviene utilizzato a proprio rischio nel caso in cui non vengano utilizzati i formati consigliati / standard.
Per eliminare gli avvisi di deprecazione ,
- Come suggerito da @Joe Wilson nella risposta precedente, fornire il formato della data sulla
momentcostruzione.
Esempio : moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- Indicare la data in formato ISO o RFC2822.
Esempio: moment("2018-02-01T18:30:00.000Z")- Formato ISO
moment("Thu, 01 Feb 2018 18:30:00 GMT")- Formato RFC2822 - Formato in Github
- Come suggerito da @niutech nella risposta precedente, impostare
moment.suppressDeprecationWarnings = true;
Suggerisco di sovrascrivere il fallback di input nel momento.
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
Poiché (3) eliminerà tutti gli avvisi, (4) eliminerà solo il fallback della costruzione della data. Usando (4), otterrai Invalid Datecome new Date()viene utilizzato l'interno e altre console possono essere viste nella console, quindi il momento può essere aggiornato o i metodi deprecati possono essere sostituiti nell'applicazione.