La costruzione della data moment
utilizza 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 moment
oggetto con data non in questi formati, viene lanciato l'avviso di deprecazione.
Sebbene vengano lanciati gli avvisi di deprecazione, per alcuni formati, l' moment
oggetto 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 Date
altri.
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.js
viene 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
moment
costruzione.
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 Date
come 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.