Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Date() Konstruktor
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
DerDate()-Konstruktor erstelltDate-Objekte. Bei einem Funktionsaufruf gibt er einen String zurück, der die aktuelle Zeit darstellt.
In diesem Artikel
Probieren Sie es aus
const date1 = new Date("December 17, 1995 03:24:00");// Sun Dec 17 1995 03:24:00 GMT...const date2 = new Date("1995-12-17T03:24:00");// Sun Dec 17 1995 03:24:00 GMT...console.log(date1.getTime() === date2.getTime());// Expected output: trueSyntax
new Date()new Date(value)new Date(dateString)new Date(dateObject)new Date(year, monthIndex)new Date(year, monthIndex, day)new Date(year, monthIndex, day, hours)new Date(year, monthIndex, day, hours, minutes)new Date(year, monthIndex, day, hours, minutes, seconds)new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds)Date()Hinweis:Date() kann mit oder ohnenew aufgerufen werden, hat aber unterschiedliche Auswirkungen. SieheRückgabewert.
Parameter
Es gibt fünf grundlegende Formen für denDate()-Konstruktor:
Keine Parameter
Wenn keine Parameter angegeben werden, repräsentiert das neu erstellteDate-Objekt das aktuelle Datum und die Uhrzeit zum Zeitpunkt der Instanzierung. Der zurückgegebeneTimestamp entspricht der Zahl, die vonDate.now() zurückgegeben wird.
Zeitwert oder Zeitstempelnummer
valueEin ganzzahliger Wert, der denTimestamp repräsentiert (die Anzahl der Millisekunden seit Mitternacht zu Beginn des 1. Januar 1970, UTC — auch bekannt alsEpoche).
Datum-String
dateStringEin String-Wert, der ein Datum repräsentiert und mit dem gleichen Algorithmus wie von
Date.parse()interpretiert wird. SieheDatum-Zeit-String-Format für Hinweise zur Verwendung verschiedener Formate.
Date-Objekt
dateObjectEin vorhandenes
Date-Objekt. Dies erstellt effektiv eine Kopie des bestehendenDate-Objekts mit dem gleichen Datum und der gleichen Uhrzeit. Dies entsprichtnew Date(dateObject.valueOf()), jedoch wird die MethodevalueOf()nicht aufgerufen.
Wenn ein Parameter an denDate()-Konstruktor übergeben wird, werdenDate-Instanzen speziell behandelt. Alle anderen Werte werdenin Primitive konvertiert. Wenn das Ergebnis ein String ist, wird er als Datum-String geparst. Andernfalls wird das resultierende Primitive weiter in eine Zahl umgewandelt und als Zeitstempel behandelt.
Einzelne Werte für Datum- und Zeitkomponenten
Wenn mindestens ein Jahr und ein Monat angegeben sind, gibt diese Form vonDate() einDate-Objekt zurück, dessen Komponentenwerte (Jahr, Monat, Tag, Stunde, Minute, Sekunde und Millisekunde) alle aus den folgenden Parametern stammen. Fehlende Felder erhalten den niedrigstmöglichen Wert (1 fürTag und0 für jede andere Komponente). Die Parameterwerte werden alle gegen die lokale Zeitzone evaluiert, anstatt gegen UTC.Date.UTC() akzeptiert ähnliche Parameter, interpretiert die Komponenten jedoch als UTC und gibt einen Zeitstempel zurück.
Wenn ein Parameter seine definierten Grenzen überschreitet, wird er "übertragen". Beispielsweise wird einmonthIndex größer als11 das Jahr erhöhen; wenn einminutes größer als59 übergeben wird, erhöhen sich diehours entsprechend usw. Daher gibtnew Date(1990, 12, 1) den 1. Januar 1991 zurück;new Date(2020, 5, 19, 25, 65) gibt 2:05 Uhr am 20. Juni 2020 zurück.
Ebenso wird, wenn ein Parameter unterläuft, von den höheren Positionen "geliehen". Beispielsweise gibtnew Date(2020, 5, 0) den 31. Mai 2020 zurück.
yearGanzzahliger Wert, der das Jahr darstellt. Werte von
0bis99werden den Jahren1900bis1999zugeordnet. Alle anderen Werte sind die tatsächlichen Jahre. Siehe dasBeispiel.monthIndexGanzzahliger Wert, der den Monat darstellt, beginnend mit
0für Januar bis11für Dezember.dayOptionalGanzzahliger Wert, der den Tag des Monats darstellt. Standardwert ist
1.hoursOptionalGanzzahliger Wert zwischen
0und23, der die Stunde des Tages darstellt. Standardwert ist0.minutesOptionalGanzzahliger Wert, der das Minuten-Segment einer Zeit darstellt. Standardwert ist
0.secondsOptionalGanzzahliger Wert, der das Sekunden-Segment einer Zeit darstellt. Standardwert ist
0.millisecondsOptionalGanzzahliger Wert, der das Millisekunden-Segment einer Zeit darstellt. Standardwert ist
0.
Rückgabewert
Der Aufruf vonnew Date() (derDate()-Konstruktor) gibt einDate Objekt zurück. Wenn er mit einem ungültigen Datum-String aufgerufen wird oder wenn das zu konstruierende Datum einen Zeitstempel kleiner als-8,640,000,000,000,000 oder größer als8,640,000,000,000,000 Millisekunden hat, gibt er einungültiges Datum zurück (einDate-Objekt, dessentoString() Methode"Invalid Date" zurückgibt und dessenvalueOf() MethodeNaN zurückgibt).
Der Aufruf derDate()-Funktion (ohne dasnew Schlüsselwort) gibt eine String-Darstellung des aktuellen Datums und der aktuellen Zeit zurück, genau wienew Date().toString(). Alle Argumente, die in einemDate()-Funktionsaufruf übergeben werden (ohne dasnew Schlüsselwort), werden ignoriert; unabhängig davon, ob es mit einem ungültigen Datum-String oder sogar mit einem beliebigen Objekt oder anderen Primitiven als Argument aufgerufen wird - es gibt immer eine String-Darstellung des aktuellen Datums und der aktuellen Zeit zurück.
Beschreibung
>Reduzierte Zeitpräzision
Um Schutz gegen Timing-Angriffe undFingerabdrücke zu bieten, kann die Präzision vonnew Date() je nach Browsereinstellungen gerundet werden. In Firefox ist dieprivacy.reduceTimerPrecision-Einstellung standardmäßig aktiviert und auf 2ms voreingestellt. Sie können auchprivacy.resistFingerprinting aktivieren, in welchem Fall die Präzision 100ms oder der Wert vonprivacy.resistFingerprinting.reduceTimerPrecision.microseconds, welcher auch immer größer ist, beträgt.
Zum Beispiel wird mit reduzierter Zeitpräzision das Ergebnis vonnew Date().getTime() immer ein Vielfaches von 2 sein, oder ein Vielfaches von 100 (oderprivacy.resistFingerprinting.reduceTimerPrecision.microseconds) mit aktiviertemprivacy.resistFingerprinting.
// reduced time precision (2ms) in Firefox 60new Date().getTime();// Might be:// 1519211809934// 1519211810362// 1519211811670// …// reduced time precision with `privacy.resistFingerprinting` enablednew Date().getTime();// Might be:// 1519129853500// 1519129858900// 1519129864400// …Beispiele
>Mehrere Möglichkeiten, ein Date-Objekt zu erstellen
Die folgenden Beispiele zeigen mehrere Möglichkeiten, JavaScript-Daten zu erstellen:
const today = new Date();const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimesconst birthday = new Date("1995-12-17T03:24:00"); // This is standardized and will work reliablyconst birthday = new Date(1995, 11, 17); // the month is 0-indexedconst birthday = new Date(1995, 11, 17, 3, 24, 0);const birthday = new Date(628021800000); // passing epoch timestampÜbergabe eines Wertes, der kein Date, kein String und keine Zahl ist
Wenn derDate()-Konstruktor mit einem Parameter aufgerufen wird, der keineDate-Instanz ist, wird er in ein Primärwert gezwungen und dann überprüft, ob er ein String ist. Zum Beispiel istnew Date(undefined) anders alsnew Date():
console.log(new Date(undefined)); // Invalid DateDies liegt daran, dassundefined bereits ein Primärwert ist, aber kein String, also wird es in eine Zahl umgewandelt, dieNaN ist und daher kein gültiger Zeitstempel. Andererseits wirdnull in0 umgewandelt.
console.log(new Date(null)); // 1970-01-01T00:00:00.000ZArrays würden in einen String viaArray.prototype.toString() umgewandelt, der die Elemente mit Kommas verbindet. Allerdings ist der resultierende String für jedes Array mit mehr als einem Element kein gültiger ISO 8601 Datum-String, sodass sein Parsing-Verhalten implementationsabhängig wäre.Übergeben Sie keine Arrays an denDate()-Konstruktor.
console.log(new Date(["2020-06-19", "17:13"]));// 2020-06-19T17:13:00.000Z in Chrome, since it recognizes "2020-06-19,17:13"// "Invalid Date" in FirefoxSpezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-date-constructor> |