Die Datumskonstruktion in verwendet momentintern das new Date()im Javascript. Die new Date()Konstruktion erkennt die Datumszeichenfolge in allen Browsern entweder im RFC2822- oder im ISO- Format. Wenn Sie ein momentObjekt mit einem Datum erstellen, das nicht in diesen Formaten vorliegt, wird die Verfallswarnung ausgegeben.
Obwohl die Verfallswarnungen ausgegeben werden, wird das momentObjekt für einige Formate erfolgreich in Chrome erstellt, jedoch nicht in Firefox oder Safari. Aus diesem Grund kann die Verarbeitung des Datums in Chrome zu erwarteten Ergebnissen führen (nicht immer) und Invalid Dateandere einwerfen .
Betrachten wir 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
Die Verwendung moment.jserfolgt daher auf eigenes Risiko, falls die empfohlenen / Standardformate nicht verwendet werden.
Um die Verfallswarnungen zu unterdrücken ,
- Geben Sie, wie von @Joe Wilson in der vorherigen Antwort vorgeschlagen, das Datumsformat für die
momentErstellung an.
Beispiel: moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
- Geben Sie das Datum im ISO- oder RFC2822-Format an.
Beispiel: moment("2018-02-01T18:30:00.000Z")- ISO-Format
moment("Thu, 01 Feb 2018 18:30:00 GMT")- RFC2822-Format - Format in Github
- Wie von @niutech in der vorherigen Antwort vorgeschlagen, setzen Sie
moment.suppressDeprecationWarnings = true;
Ich schlage vor, den Eingabe-Fallback im Moment zu überschreiben.
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
Da (3) alle Warnungen unterdrückt, unterdrückt (4) nur den Fallback der Datumskonstruktion. Mit (4) erhalten Sie Invalid Dateals internenew Date() verwendet wird und andere Abwertungen in der Konsole angezeigt werden, sodass der Moment aktualisiert oder die veralteten Methoden in der Anwendung ersetzt werden können.