A construção da data em momentinternamente usa o new Date()no javascript. A new Date()construção reconhece a sequência de datas nos formatos RFC2822 ou ISO em todos os navegadores. Ao construir um momentobjeto com data que não esteja nesses formatos, o aviso de reprovação é emitido.
Embora os avisos de descontinuação sejam lançados, para alguns formatos, o momentobjeto será construído com êxito no Chrome, mas não no Firefox ou Safari. Por esse motivo, o processamento da data no Chrome pode gerar resultados conforme o esperado (nem sempre) e gerar Invalid Dateoutros.
Considere, 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
Então o moment.js é usado por seu próprio risco, caso os formatos recomendados / padrão não sejam usados.
Para suprimir os avisos de descontinuação ,
- Como sugerido por Joe Wilson na resposta anterior, forneça o formato da data na
momentconstrução.
Exemplo: moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- Forneça a data no formato ISO ou RFC2822.
Exemplo: moment("2018-02-01T18:30:00.000Z")- Formato ISO
moment("Thu, 01 Feb 2018 18:30:00 GMT")- Formato RFC2822 - Formato no Github
- Conforme sugerido por @niutech na resposta anterior, defina
moment.suppressDeprecationWarnings = true;
Sugiro substituir o fallback de entrada no momento.
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
Como (3) suprimirá todos os avisos, (4) suprimirá apenas o fallback da construção da data. Usando (4), você obterá Invalid Dateo uso interno new Date()e outras obsoletas poderão ser vistas no console, para que o momento possa ser atualizado ou os métodos obsoletos possam ser substituídos no aplicativo.