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 implizittoISOString
aufruft - Verwendung von
JSON.stringify()
, um das Datum zu serialisieren, was implizittoJSON
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
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:
invalid.toString(); // "Invalid Date"
invalid.getDate(); // NaN
Für nähere Informationen siehe die Dokumentation zu Date.parse()
.
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"