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 String-Darstellung eines Datums und gibt den Timestamp 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
Date.parse(dateString)
Parameter
dateString
-
Ein String im Datums-Zeit-String-Format. Siehe die verlinkte Referenz für Hinweise zur Verwendung verschiedener Formate.
Rückgabewert
Beschreibung
Diese Funktion ist nützlich, um Datumswerte basierend auf String-Werten festzulegen, zum Beispiel in Verbindung mit der setTime()
-Methode.
Die Formate, die parse()
verarbeiten kann, sind nicht explizit spezifiziert, aber es gibt einige Invariantien:
- Das Datums-Zeit-String-Format (erzeugt durch
toISOString()
) muss unterstützt werden. - Wenn
x
ein beliebiges Datum ist, dessen Millisekundenbetrag null ist, solltex.valueOf()
gleich einem der folgenden 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 nicht die Unterstützung für das durch
toLocaleString()
erzeugte Format. Große Engines versuchen jedoch, dastoLocaleString("en-US")
-Format zu unterstützen.
Andere Formate sind implementationsspezifisch und funktionieren möglicherweise nicht in allen Browsern. Eine Bibliothek kann helfen, wenn viele verschiedene Formate berücksichtigt werden müssen. Tatsächlich ist die Unzuverlässigkeit von Date.parse()
eine der Motivationen 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 Aufrufe geben alle 1546300800000
zurück. Der erste impliziert UTC-Zeit, da er nur das Datum enthält, und die anderen geben die UTC-Zeitzone explizit 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 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 Uhrzeit enthält.
Date.parse("2019-01-01T00:00:00");
Formate von toString() und toUTCString()
Neben dem standardmäßigen Datums-Zeit-String-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 standardmäßige Datums-Strings
Hinweis: Dieser Abschnitt enthält implementationsspezifisches Verhalten, das möglicherweise in Browsern oder verschiedenen Browserversionen inkonsistent ist. Er ist nicht als umfassende Browser-Kompatibilitätstabelle gedacht, und Sie sollten stets Ihre eigenen Tests durchführen, bevor Sie ein Format in Ihrem Code verwenden.
Implementierungen verwenden in der Regel die lokale Zeitzone, wenn der Datums-String nicht standardmäßig ist. Zur Konsistenz nehmen wir an, dass die Laufzeit die UTC-Zeitzone verwendet, und sofern nicht anders angegeben, variiert die Ausgabe mit der Zeitzone des Geräts. Die Sommerzeit (DST) der lokalen Zeitzone kann ebenfalls Auswirkungen darauf haben.
Hier sind einige weitere Beispiele für nicht standardmäßige Datums-Strings. Browser sind beim Parsen von Datum-Strings sehr tolerant und ignorieren möglicherweise Teile eines Strings, die sie nicht analysieren können. Aus Kompatibilitätsgründen kopieren Browser oft das Verhalten voneinander, sodass sich diese Umgangsmuster browserübergreifend verbreiten. Wie bereits erwähnt, dienen die folgenden Beispiele nur der Veranschaulichung und sind keineswegs erschöpfend:
Beschreibung | Beispiel | Chrome | Firefox | Safari |
---|---|---|---|---|
Einzelne Zahl | 0 (einstellig) |
946684800000 (01. Jan 2000); NaN in Firefox ≤122 | -62167219200000 (01. Jan 0000) | |
31 (zweistellig) |
NaN | -61188912000000 (01. Jan 0031) | ||
999 (drei-/vierstellig) |
-30641733102000 (01. Jan 0999) | |||
Datums-Strings mit unterschiedlichen Trennzeichen | 1970-01-01 (Standard) |
0 in allen Zeitzonen | ||
1970/01/01 |
0 | |||
1970,01,01 |
0 | NaN | ||
1970 01 01 |
0 | NaN | ||
Strings, die toString() ähneln |
Thu Jan 01 1970 00:00:00 Thu Jan 01 1970 Jan 01 1970 00:00:00 Jan 01 1970 |
0 | ||
Strings, die toUTCString() ähneln |
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 (erster Teil kann gültiger Monat sein) |
1041465600000 (02. Jan 2003) | -62132745600000 (03. Feb 0001) Hinweis: Safari nimmt immer YY-MM-DD an, aber MM/DD/YY. |
|
27-02-03 (erster Teil kann gültiger Tag, aber nicht Monat sein) |
NaN | -61312291200000 (03. Feb 0027) | ||
49-02-03 (erster Teil kann kein gültiger Tag sein und ist <50) |
2495923200000 (03. Feb 2049) | -60617980800000 (03. Feb 0049) | ||
50-02-03 (erster Teil kann kein gültiger Tag sein und ist ≥50) |
-628300800000 (03. Feb 1950) | -60586444800000 (03. Feb 0050) | ||
Datumsbestandteile außerhalb der Grenzen | 2014-25-23 Mar 32, 2014 2014/25/23 |
NaN | ||
2014-02-30 |
1393718400000 (02. Mar 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 und gibt NaN zurück, wenn es "F" sieht. |
|||
04 De 1995 |
NaN |
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-date.parse |