Date.parse()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Die Date.parse() statische Methode analysiert eine Zeichenkette, die ein Datum darstellt, und gibt den Zeitstempel des Datums zurück.

Probieren Sie es aus

// Standard date-time string format
const unixTimeZero = Date.parse("1970-01-01T00:00:00Z");
// Non-standard format resembling toUTCString()
const javaScriptRelease = Date.parse("04 Dec 1995 00:12:00 GMT");

console.log(unixTimeZero);
// Expected output: 0

console.log(javaScriptRelease);
// Expected output: 818035920000

Syntax

js
Date.parse(dateString)

Parameter

dateString

Eine Zeichenkette im Date-Time-String-Format. Sehen Sie sich die verlinkte Referenz für Vorsichtsmaßnahmen bei der Verwendung verschiedener Formate an.

Rückgabewert

Eine Zahl, die den Zeitstempel des angegebenen Datums darstellt. Wenn dateString nicht als gültiges Datum analysiert werden kann, wird NaN zurückgegeben.

Beschreibung

Diese Funktion ist nützlich, um Datumswerte basierend auf Zeichenkettenwerten festzulegen, beispielsweise in Verbindung mit der setTime() Methode.

Die Formate, die parse() verarbeiten kann, sind nicht ausdrücklich festgelegt, aber es gibt einige Invarianten:

  • Das Date-Time-String-Format (erstellt durch toISOString()) muss unterstützt werden.
  • Wenn x ein beliebiges Datum ist, dessen Millisekundenwert null ist, dann sollte x.valueOf() gleich einem der folgenden sein: Date.parse(x.toString()), Date.parse(x.toUTCString()), Date.parse(x.toISOString()). Das bedeutet, dass die Formate, die durch toString() und toUTCString() erstellt werden, ebenfalls unterstützt werden sollten.
  • Die Spezifikation erfordert nicht die Unterstützung des Formats, das durch toLocaleString() erstellt wird. Allerdings versuchen alle großen Engines, das toLocaleString("en-US") Format zu unterstützen.

Andere Formate sind implementierungsdefiniert und funktionieren möglicherweise nicht in allen Browsern. Eine Bibliothek kann hilfreich sein, wenn viele verschiedene Formate unterstützt werden müssen. Tatsächlich ist die Unzuverlässigkeit von Date.parse() eine der Beweggründe für die Einführung der Temporal API.

Da parse() eine statische Methode von Date ist, verwenden Sie sie immer als Date.parse() und nicht als Methode eines erstellten Date-Objekts.

Beispiele

Verwendung von Date.parse()

Die folgenden Aufrufe geben alle 1546300800000 zurück. Der erste impliziert die UTC-Zeit, weil er nur das Datum enthält, und die anderen geben die UTC-Zeitzone ausdrücklich an.

js
Date.parse("2019-01-01");
Date.parse("2019-01-01T00:00:00.000Z");
Date.parse("2019-01-01T00:00:00.000+00:00");

Der folgende Aufruf, der keine Zeitzone angibt, wird auf den 01.01.2019 um 00:00:00 in der lokalen Zeitzone des Systems gesetzt, da er sowohl Datum als auch Zeit enthält.

js
Date.parse("2019-01-01T00:00:00");

toString() und toUTCString() Formate

Abgesehen vom Standard-Date-Time-String-Format werden die Formate toString() und toUTCString() unterstützt:

js
// toString() format
Date.parse("Thu Jan 01 1970 00:00:00 GMT-0500 (Eastern Standard Time)");
// 18000000 in all implementations in all timezones

// toUTCString() format
Date.parse("Thu, 01 Jan 1970 00:00:00 GMT");
// 0 in all implementations in all timezones

Nicht-Standard-Datumsstring

Hinweis: Dieser Abschnitt enthält implementierungsspezifisches Verhalten, das je nach Browser oder verschiedenen Browserversionen inkonsistent sein kann. Er ist nicht als umfassende Browser-Kompatibilitätstabelle gedacht und Sie sollten immer Ihre eigenen Tests durchführen, bevor Sie ein Format in Ihrem Code verwenden.

Implementierungen verwenden in der Regel die lokale Zeitzone, wenn die Datumszeichenkette nicht standardisiert ist. Zur Konsistenz nehmen wir an, dass die Laufzeit die UTC-Zeitzone verwendet, und es sei denn, es wird anders angegeben, kann sich die Ausgabe mit der Zeitzone des Geräts ändern. Die Sommerzeit (DST) der lokalen Zeitzone kann ebenfalls einen Einfluss darauf haben.

Hier sind einige weitere Beispiele für nicht standardisierte Datumszeichenketten. Browser sind sehr großzügig beim Parsen von Datumszeichenketten und können jeden Teil einer Zeichenkette weglassen, den sie nicht analysieren können. Aus Kompatibilitätsgründen kopieren Browser oft das Verhalten voneinander, sodass sich diese Verarbeitungspatterns über mehrere Browser hinweg verbreiten. Wie bereits erwähnt, sind die folgenden Beispiele nur zur Illustration gedacht und keineswegs vollständig:

Beschreibung Beispiel Chrome Firefox Safari
Einzelne Zahl 0 (einstellig) 946684800000 (Jan 01 2000); NaN in Firefox ≤122 -62167219200000 (Jan 01 0000)
31 (zweistellig) NaN -61188912000000 (Jan 01 0031)
999 (drei-/vierstellig) -30641733102000 (Jan 01 0999)
Datumszeichenketten, die verschiedene Trennzeichen verwenden 1970-01-01 (Standard) 0 in allen Zeitzonen
1970/01/01 0
1970,01,01 0 NaN
1970 01 01 0 NaN
Zeichenketten, die wie toString() aussehen Thu Jan 01 1970 00:00:00
Thu Jan 01 1970
Jan 01 1970 00:00:00
Jan 01 1970
0
Zeichenketten, die wie toUTCString() aussehen Thu, 01 Jan 1970 00:00:00
Thu, 01 Jan 1970
01 Jan 1970 00:00:00
01 Jan 1970
0
Erste Datumskomponente ist zweistellig 01-02-03 (erstes Segment kann ein gültiger Monat sein) 1041465600000 (Jan 02 2003) -62132745600000 (Feb 03 0001)
Hinweis: Safari nimmt immer YY-MM-DD an, aber MM/DD/YY.
27-02-03 (erstes Segment kann ein gültiger Tag, aber kein Monat sein) NaN -61312291200000 (Feb 03 0027)
49-02-03 (erstes Segment kann kein gültiger Tag sein und ist <50) 2495923200000 (Feb 03 2049) -60617980800000 (Feb 03 0049)
50-02-03 (erstes Segment kann kein gültiger Tag sein und ist ≥50) -628300800000 (Feb 03 1950) -60586444800000 (Feb 03 0050)
Außerhalb des Bereichs liegende Datumskomponenten 2014-25-23
Mar 32, 2014
2014/25/23
NaN
2014-02-30 1393718400000 (Mar 02 2014) NaN
02/30/2014 1393718400000
Überflüssige Zeichen nach dem Monatsnamen 04 Dec 1995
04 Decem 1995
04 December 1995
818031600000
04 DecFoo 1995 818031600000
Nur die ersten drei Zeichen werden gelesen.
Firefox ≤121 liest bis zum gültigen Monatsnamen, wodurch NaN zurückgegeben wird, wenn es "F" sieht.
04 De 1995 NaN

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-date.parse

Browser-Kompatibilität

Siehe auch