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 statische Methode Date.parse() analysiert eine Zeichenketten-Darstellung eines Datums und gibt den Zeitstempel dieses 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 Datums-Zeit-Format. Siehe die verlinkte Referenz für Hinweise zur Verwendung verschiedener Formate.

Rückgabewert

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

Beschreibung

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

Die Formate, die parse() verarbeiten kann, sind nicht explizit angegeben, aber es gibt einige Invarianten:

  • Das Datums-Zeit-Format (erzeugt durch toISOString()) muss unterstützt werden.
  • Wenn x ein beliebiges Datum ist, dessen Millisekunden null sind, sollte x.valueOf() gleich einem der folgenden Ausdrücke sein: Date.parse(x.toString()), Date.parse(x.toUTCString()), Date.parse(x.toISOString()). Das bedeutet, die durch toString() und toUTCString() erzeugten Formate sollten ebenfalls unterstützt werden.
  • Die Spezifikation erfordert keine Unterstützung für das durch toLocaleString() erzeugte Format. Allerdings versuchen alle großen Engines, das Format toLocaleString("en-US") zu unterstützen.

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

Da parse() eine statische Methode von Date ist, wird sie immer als Date.parse() verwendet, nicht als Methode eines von Ihnen erstellten Date-Objekts.

Beispiele

Verwendung von Date.parse()

Die folgenden Anrufe geben alle 1546300800000 zurück. Der erste impliziert UTC-Zeit, da er nur das Datum enthält, und die anderen geben explizit die UTC-Zeitzone 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 Anruf, der keine Zeitzone angibt, wird auf den 2019-01-01 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 standardisierten Datums-Zeit-Format werden die toString()- und toUTCString()-Formate 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-standardisierte Datums-Zeichenketten

Hinweis: Dieser Abschnitt enthält implementierungsspezifisches Verhalten, das möglicherweise nicht konsistent zwischen Browsern oder verschiedenen Browserversionen ist. Er ist nicht als umfassende Tabelle zur Browser-Kompatibilität gedacht, und Sie sollten Ihre eigenen Tests durchführen, bevor Sie ein Format in Ihrem Code verwenden.

Implementierungen verwenden normalerweise die lokale Zeitzone, wenn die Datums-Zeichenkette nicht standardisiert ist. Zur Konsistenz gehen wir davon aus, dass der Ablauf die UTC-Zeitzone verwendet. Sofern nicht anders angegeben, variiert die Ausgabe mit der Zeitzone des Geräts. Die Sommerzeit (DST) der lokalen Zeitzone kann ebenfalls einen Einfluss haben.

Hier sind einige weitere Beispiele für nicht standardisierte Datums-Zeichenketten. Browser sind beim Parsen von Datums-Zeichenketten sehr tolerant und können Teile einer Zeichenkette, die sie nicht analysieren können, verwerfen. Aus Kompatibilitätsgründen kopieren Browser oft das Verhalten anderer, sodass sich diese Verhaltensmuster von Browser zu Browser verbreiten. Wie bereits erwähnt, dienen die folgenden Beispiele nur zur Veranschaulichung und sind keineswegs vollständig:

Beschreibung Beispiel Chrome Firefox Safari
Einzelne Zahl 0 (einstellig) 946684800000 (01.01.2000); NaN in Firefox ≤122 -62167219200000 (01.01.0000)
31 (zweistellig) NaN -61188912000000 (01.01.0031)
999 (drei-/vierstellig) -30641733102000 (01.01.0999)
Datums-Zeichenketten mit verschiedenen Trennzeichen 1970-01-01 (standardisiert) 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 Datums-Komponente ist zweistellig 01-02-03 (erste Komponente kann ein gültiger Monat sein) 1041465600000 (02.01.2003) -62132745600000 (03.02.0001)
Hinweis: Safari nimmt immer YY-MM-DD an, aber MM/DD/YY.
27-02-03 (erste Komponente kann ein gültiger Tag, aber kein Monat sein) NaN -61312291200000 (03.02.0027)
49-02-03 (erste Komponente kann kein gültiger Tag sein und ist <50) 2495923200000 (03.02.2049) -60617980800000 (03.02.0049)
50-02-03 (erste Komponente kann kein gültiger Tag sein und ist ≥50) -628300800000 (03.02.1950) -60586444800000 (03.02.0050)
Außerhalb der zulässigen Datums-Komponenten 2014-25-23
Mar 32, 2014
2014/25/23
NaN
2014-02-30 1393718400000 (02.03.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, gibt also NaN zurück, wenn er "F" sieht.
04 De 1995 NaN

Spezifikationen

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

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch