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

js
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

Eine Zahl, die den Timestamp des gegebenen 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 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, sollte x.valueOf() gleich einem der folgenden 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 nicht die Unterstützung für das durch toLocaleString() erzeugte Format. Große Engines versuchen jedoch, das toLocaleString("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.

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 Uhrzeit enthält.

js
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:

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 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

Browser-Kompatibilität

Siehe auch