RangeError: invalid date
Die JavaScript-Ausnahme "invalid date" tritt auf, wenn versucht wird, ein ungültiges Datum in eine ISO-Datumszeichenkette zu konvertieren.
Nachricht
RangeError: Invalid time value (V8-based) RangeError: invalid date (Firefox) RangeError: Invalid Date (Safari)
Fehlertyp
RangeError
Was ist schiefgelaufen?
Sie konvertieren einen ungültigen Datumswert in eine ISO-Datumszeichenkette, indem Sie die Methode toISOString() aufrufen.
Ein ungültiges Datum entsteht, wenn Sie versuchen, einen ungültigen Datumstext zu parsen oder den Zeitstempel auf einen Wert außerhalb der Grenzen festzulegen. Ungültige Daten führen in der Regel dazu, dass alle Datumsverfahren NaN oder andere Spezialwerte zurückgeben. Solche Daten haben jedoch keine gültigen ISO-Zeichenketten, daher wird ein Fehler ausgelöst, wenn Sie versuchen, dies zu tun.
Hinweis:
toJSON() löst diesen Fehler nicht aus. Es wird überprüft, ob das Datum endlich ist, bevor es formatiert wird, und gibt für ein ungültiges Datum null zurück, anstatt toISOString() aufzurufen. JSON.stringify(), das toJSON() aufruft, serialisiert daher ein ungültiges Datum als null anstatt einen Fehler auszulösen.
Beispiele
>Ungültige Fälle
const invalid = new Date("nothing");
invalid.toISOString(); // RangeError: invalid date
Jedoch geben die meisten anderen Methoden spezielle Werte zurück:
invalid.toString(); // "Invalid Date"
invalid.getDate(); // NaN
invalid.toJSON(); // null
JSON.stringify({ date: invalid }); // '{"date":null}'
Für weitere Details siehe die Date.parse() Dokumentation.
Gültige Fälle
new Date("05 October 2011 14:48 UTC").toISOString(); // "2011-10-05T14:48:00.000Z"
new Date(1317826080).toISOString(); // "2011-10-05T14:48:00.000Z"