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
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, solltex.valueOf()
gleich einem der folgenden Ausdrücke sein:Date.parse(x.toString())
,Date.parse(x.toUTCString())
,Date.parse(x.toISOString())
. Das bedeutet, die durchtoString()
undtoUTCString()
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 FormattoLocaleString("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.
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.
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:
// 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