RangeError: invalid date

Die JavaScript-Ausnahme "invalid date" tritt auf, wenn ein ungültiges Datum versucht wird, in einen ISO-Datumsstring umgewandelt zu werden.

Nachricht

RangeError: Invalid time value (V8-based)
RangeError: invalid date (Firefox)
RangeError: Invalid Date (Safari)

Fehlertyp

Was ist schiefgelaufen?

Sie konvertieren einen ungültigen Datumswert in einen ISO-Datumsstring. Dies geschieht normalerweise auf eine der drei folgenden Arten:

  • Aufrufen der Methode toISOString()
  • Aufrufen der Methode toJSON(), welche implizit toISOString aufruft
  • Verwendung von JSON.stringify(), um das Datum zu serialisieren, was implizit toJSON aufruft

Ein ungültiges Datum entsteht, wenn Sie versuchen, einen ungültigen Datumsstring zu parsen oder den Zeitstempel auf einen Wert außerhalb des zulässigen Bereichs zu setzen. Ungültige Daten führen in der Regel dazu, dass alle Datumsmethoden NaN oder andere spezielle Werte zurückgeben. Solche Daten haben jedoch keine gültigen ISO-String-Darstellungen, daher wird ein Fehler ausgelöst, wenn Sie versuchen, dies zu tun.

Beispiele

Ungültige Fälle

js
const invalid = new Date("nothing");
invalid.toISOString(); // RangeError: invalid date
invalid.toJSON(); // RangeError: invalid date
JSON.stringify({ date: invalid }); // RangeError: invalid date

Jedoch geben die meisten anderen Methoden spezielle Werte zurück:

js
invalid.toString(); // "Invalid Date"
invalid.getDate(); // NaN

Für nähere Informationen siehe die Dokumentation zu Date.parse().

Gültige Fälle

js
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"

Siehe auch