La construcción de la fecha en momentinternamente 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 momentobjeto 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 momentobjeto 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 Dateotros.
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.jsse 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
momentconstrucció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 Datemedida 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.