La construcción de la fecha en moment
internamente usa el new Date()
en el javascript. La new Date()
construcción reconoce la cadena de fecha en formatos RFC2822 o ISO en todos los navegadores. Cuando se construye un moment
objeto con fecha que no está en estos formatos, se emite la advertencia de desaprobación.
Aunque se lanzan advertencias de desaprobación, para algunos formatos, el moment
objeto se construirá con éxito en Chrome, pero no en Firefox o Safari. Debido a esto, procesar la fecha en Chrome puede dar resultados como se esperaba (no todo el tiempo) y arrojar Invalid Date
otros.
Considere, 02.02.2018
,
Cromo - 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
Por lo tanto, moment.js
se usa bajo su propio riesgo en caso de que no se usen los formatos recomendados / estándar.
Para suprimir las advertencias de desaprobación ,
- Como lo sugirió @ Joe Wilson en la respuesta anterior, proporcione el formato de fecha en la
moment
construcción.
Ejemplo: moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- Indique la fecha en formato ISO o RFC2822.
Ejemplo: moment("2018-02-01T18:30:00.000Z")
- Formato ISO
moment("Thu, 01 Feb 2018 18:30:00 GMT")
- Formato RFC2822 - Formato en Github
- Como lo sugirió @niutech en la respuesta anterior, establezca
moment.suppressDeprecationWarnings = true;
Sugiero sobrescribir la reserva de entrada en el momento.
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
Como (3) suprimirá todas las advertencias, (4) suprimirá solo el retroceso de construcción de la fecha. Usando (4), obtendrá a Invalid Date
medida que new Date()
se usa el interno y se pueden ver otras depreciaciones en la consola, por lo que se puede actualizar el momento o se pueden reemplazar los métodos en desuso en la aplicación.