Die Datumskonstruktion in verwendet moment
intern 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 moment
Objekt mit einem Datum erstellen, das nicht in diesen Formaten vorliegt, wird die Verfallswarnung ausgegeben.
Obwohl die Verfallswarnungen ausgegeben werden, wird das moment
Objekt 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 Date
andere 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.js
erfolgt 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
moment
Erstellung 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 Date
als 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.