Syntax
new Date(); new Date(value); new Date(dateString); new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
Date
Objekt kann nur instanziiert werden, wenn JavaScript Date als ein Konstruktor aufgerufen wird: Beim Aufrufen als reguläre Funktion (z. B. ohne den new
Operator) gibt die Funktion einen String zurück und kein Date
Objekt. Anders als andere JavaScript-Datentypen hat das Date
Objekt keine Literalsyntax.Parameter
Date
als Konstruktor mit mehr als einem Argument aufgerufen wird und die übergebenen Werte größer als ihr logischer Bereich sind (z. B. 13 wird als Monat genutzt oder 70 wird als Minutenwert eingesetzt) wird der angrenzende Wert angepasst. Z. B. ist new Date(2013, 13, 1)
äquivalent zu new Date(2014, 1, 1
. Beide Ausdrücke erstellen das Datum 01.02.2014 (Monate fangen bei 0 an). Das gleiche gilt für folgende Werte: new Date(2013, 2, 1, 0, 70)
ist äquivalent zu new Date(2013, 2, 1, 1, 10)
, was beides den Zeitpunkt 01.03.2013 01:10:00 erzeugt.Date
als Konstruktor mit mehr als einem Argumenten aufgerufen wird, werden die Argumente als Ortszeit interpretiert. Wenn die Weltzeit genutzt werden soll, muss new Date(Date.UTC(...)
)
mit den gleichen Argumenten genutzt werden.value
- Ganze Zahl, die die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC (Unixzeit) repräsentiert.
dateString
- String der ein Datum repräsentiert. Der String muss in einem Format vorliegen, der von der
Date.parse()
Methode eingelesen werden kann (IETF-compliant RFC 2822 Zeitstempel und auch eine Version von ISO8601).
year
- Ganze Zahl, die die Jahre repräsentiert. Werte von 0 bis 99 werden zu den Jahren 1900 bis 1999 umgewandelt. Siehe das Beispiel unten.
month
- Ganze Zahl, die den Monat repräsentiert. Die Zahl beginnt bei 0 für Januar und endet bei 11 für Dezember.
day
- Ganze Zahl, die den Tag des Monats repräsentiert.
hour
- Ganze Zahl, die die Stunde des Tages repräsentiert.
minute
- Ganze Zahl, die die Minuten einer Stunde repräsentiert.
second
- Ganze Zahl, die die Sekunden einer Minute repräsentiert.
millisecond
- Ganze Zahl, die die Millisekunden einer Sekunde repräsentiert.
Beschreibung
- Wenn keine Argumente übergeben werden, erstellt der Konstruktor eine
Date
Objekt mit dem aktuellen Datum und der aktuellen Zeit der Systemeinstellungen. - Wenn mindestens zwei Argumente übergeben werden, werden fehlende Argumente auf 1 gesetzt (wenn day fehlt) oder auf 0 gesetzt (für alle anderen Fälle).
- Das JavaScript Datum basiert auf einem Zeitwert, der die Millisekunden seit Mitternacht am 1. Januar 1970 UTC beinhaltet. Ein Tag hat 86.400.000 Millisekunden. Der Bereich des JavaScript Datums-Objektes ist von -100.000.000 Tagen bis 100.000.000 Tagen relativ zum 1. Januar 1970 UTC.
- Das JavaScript
Date
Objekt unterstützt ein einheitliches plattformübergreifendes Format. Der Zeitwert kann zwischen Systemen ausgetauscht werden, um den gleichen Moment der Zeit zu repräsentieren. Wenn es zum erstellen eines lokalendate
Objekt genutzt wird, wird es die lokale äquivalente Zeit benutzen. - Das JavaScript
Date
Objekt unterstützt eine Nummer der UTC (universal) Methode genauso wie eine lokale Zeit Methode. UTC ist auch bekannt als Greenwich-Zeit (GTM), welches die Standardweltzeit ist. Die lokale Zeit ist die Zeit des Computers, auf dem JavaScript ausgeführt wird. - Das Aufrufen der JavaScript
Date
Funktion (z. B. ohne dennew
Operator) gibt einen String, der das aktuelle Datum und die aktuelle Zeit repräsentiert, zurück.
Eigenschaften
For properties available on Date
instances, see Properties of Date instances.
Date.prototype
- Erlaubt das hinzufügen von Eigenschaften zum JavaScript
Date
Objekt. - Date.length
- Der Wert von
Date.length
ist 7. Dieses ist die Anzahl der Argumente, die vom Konstruktor gehändelt werden.
Methoden
For methods available on Date
instances, see Methods of Date instances.
Date.now()
- Gibt den nummerischen Wert der aktuellen Zeit an - die Anzahl der Millisekunden die seit dem 1. Januar 1970 00:00:00 UTC vergangen sind.
Date.parse()
- Analysiert eine String-Repräsentation eines Datums und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC zurück.Hinweis: Von der Nutzung der
Date.parse
Methode wird stark abgeraten wegen Unterschieden und Wiedersprüchen in verschiedenen Browsern. Date.UTC()
- Akzeptiert die gleichen Parameter wie der längst Form des Konstruktors (z. B. 2 bis 7) und gibt die Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00 UTC zurück.
JavaScript Date
Instanzen
Alle Date
Instanzen erben von Date.prototype
. Das Prototype Objekt des Date
Konstruktors kann modifiziert werden, um alle Date
Instanzen zu ändern.
Methoden
Getter
Date.prototype.getDate()
- Gibt den Tag des Monats (1 - 31) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getDay()
- Gibt den Tag der Woche (0 - 6) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getFullYear()
- Gibt das Jahr (4 Ziffern für 4 ziffrige Jahre) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getHours()
- Gibt die Stunde (0 - 23) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getMilliseconds()
- Gibt die Millisekunden (0 - 999) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getMinutes()
- Gibt die Minuten (0 - 59) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getMonth()
- Gibt den Monat (0 - 11) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getSeconds()
- Gibt die Sekunden (0 - 59) eines Datums gemäß der Ortszeit zurück.
Date.prototype.getTime()
- Gibt den nummerischen Wert eines Datums als Millisekunden seit 1. Januar 1970 00:00:00 UTC (negative für frühere Daten) zurück.
Date.prototype.getTimezoneOffset()
- Gibt den Zeitzonenunterschied in Minuten für die aktuelle Region zurück.
Date.prototype.getUTCDate()
- Gibt den Tag des Monats (1 - 31) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getUTCDay()
- Gibt den Tag der Woche (0 - 6) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getUTCFullYear()
- Gibt das Jahr (4 Ziffern für 4 ziffrige Jahre) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getUTCHours()
- Gibt die Stunden (0 - 23) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getUTCMilliseconds()
- Gibt die Millisekunden (0 - 999) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getUTCMinutes()
- Gibt die Minuten (0 - 59) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getUTCMonth()
- Gibt den Monat (0 - 11) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getUTCSeconds()
- Gibt die Sekunden (0 - 59) eines Datums gemäß der Weltzeit zurück.
Date.prototype.getYear()
- Gibt das Jahr (nur 2 - 3 Ziffern) eines Datums gemäß der Ortszeit zurück. Stattdessen sollte
getFullYear()
benutzt werden.
Setter
Date.prototype.setDate()
- Setzt den Tag des Monats eines Datums gemäß der Ortszeit.
Date.prototype.setFullYear()
- Setzt das Jahr (4 Ziffern für 4 ziffriege Jahre) eines Datums gemäß der Ortszeit.
Date.prototype.setHours()
- Setzt die Stunden eines Datums gemäß der Ortszeit.
Date.prototype.setMilliseconds()
- Setzt die Millisekunden eines Datums gemäß der Ortszeit.
Date.prototype.setMinutes()
- Setzt die Minuten eines Datums gemäß der Ortszeit.
Date.prototype.setMonth()
- Setzt den Monat eines Datums gemäß der Ortszeit.
Date.prototype.setSeconds()
- Setzt die Sekunden eines Datums gemäß der Ortszeit.
Date.prototype.setTime()
- Setzt ein
Date
Objekt auf die Zeit, mit der Anzahl der Millisekunden seit dem 1. Januar 1970 00:00:00UTC. Negative Zahlen sind für frühere Daten erlaubt. Date.prototype.setUTCDate()
- Setzt den Tag des Monats eines Datums gemäß der Weltzeit.
Date.prototype.setUTCFullYear()
- Setzt das Jahr (4 Ziffern für 4 ziffrige Jahre) eines Datums gemäß der Weltzeit.
Date.prototype.setUTCHours()
- Setzt die Stunde eines Datums gemäß der Weltzeit.
Date.prototype.setUTCMilliseconds()
- Setzt die Millisekunden eines Datums gemäß der Weltzeit.
Date.prototype.setUTCMinutes()
- Setzt die Minuten eines Datums gemäß der Weltzeit.
Date.prototype.setUTCMonth()
- Setzt den Monat eines Datums gemäß der Weltzeit.
Date.prototype.setUTCSeconds()
- Setzt die Sekunden eines Datums gemäß der Weltzeit.
Date.prototype.setYear()
- Setzt das Jahr (nur 2 - 3 Ziffern) eines Datums gemäß der Ortszeit. Stattdessen sollte
setFullYear()
benutzt werden.
Konvertierungsgetter
Date.prototype.toDateString()
- Gibt das Datum als menschlich lesbaren String zurück.
Date.prototype.toISOString()
- Konvertiert ein Datum zu einem String im erweiterten ISO 8601 Format.
Date.prototype.toJSON()
- Gibt eine String-Repräsentation eines
Date
Objektes zurück. Dabei wird dietoISOString()
Methode eingesetzt. Gedacht für den Einsatz vonJSON.stringify()
. Date.prototype.toGMTString()
- Gibt eine String-Repräsentation eines
Date
Objektes auf Basis der GMT (UT) Zeitzone zurück. Stattdessen solltetoUTCString()
eingesetzt werden. Date.prototype.toLocaleDateString()
- Gibt einen String mit ortssensitiver Repräsentation eines Datums zurück. Dieses Datum basiert auf den Systemeinstellungen.
Date.prototype.toLocaleFormat()
- Konvertiert ein Datum zu einem String mithilfe eines Formatierungsstrings.
Date.prototype.toLocaleString()
- Gibt einen String mit ortssensitiver Repräsentation eines Datums zurück. Diese Method überschreibt die
Object.prototype.toLocaleString()
Methode. Date.prototype.toLocaleTimeString()
- Gibt einen String mit ortssensitiver Repräsentation der Zeit eines Datums zurück. Diese Zeit basiert auf den Systemeinstellungen.
Date.prototype.toSource()
- Gibt einen String-Repräsentation des Quelltextes zurück (gleich dem
Date
Objekt). Man kann diese Methode einsetzen um ein neues Objekt zu erstellen. Diese Methode überschreibt dieObject.prototype.toSource()
Methode Date.prototype.toString()
- Gibt eine String-Repräsentation eines
Date
Objektes zurück. Diese Methode überschreibt dieObject.prototype.toString()
Methode. Date.prototype.toTimeString()
- Gibt die Zeit eines Datums als menschlich lesbaren String zurück.
Date.prototype.toUTCString()
- Konvertiert das Datum zu einem String unter Einsatz der UTC Zeitzone.
Date.prototype.valueOf()
- Gibt ein primitiven Wert eines
Date
Objektes zurück. Diese Methode überschreibt dieObject.prototype.valueOf()
Methode.
Beispiele
Verschiedene Wege ein Date Objekt zu erstellen
Das folgende Beispiel zeigt verschiedene Wege, um JavaScript Date
Objekte zu erstellen:
Date
Konstruktors mit einem String-Argument (und der Date.parse
Methode) wird stark abgeraten wegen Unterschieden und Wiedersprüchen in verschiedenen Browsern.var today = new Date(); var birthday = new Date("December 17, 1995 03:24:00"); var birthday = new Date("1995-12-17T03:24:00"); var birthday = new Date(1995,11,17); var birthday = new Date(1995,11,17,3,24,0);
Zwei ziffrige Zahlen für die Jahre 1900 - 1999
Um Daten in den Jahren 0 bis 99 zu erzeugen und abzufragen, müssen die Methoden Date.prototype.setFullYear()
und Date.prototype.getFullYear()
eingesetzt werden.
var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) // Deprecated Methode, 98 wird hier zu 1998 date.setYear(98); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) date.setFullYear(98); // Sat Feb 01 0098 00:00:00 GMT+0000 (BST)
Berechnen von vergangener Zeit
Die folgenden Beispiele zeigen wie man die vergangene Zeit zwischen zwei JavaScript date
s in Millisekunden berechnet.
Durch die unterschiedlichen Längen von Tagen (wegen der Sommer/Winter Zeitumstellung), Monaten und Jahren gibt es bei Zeiteinheiten größer als Stunden, Minuten und Sekunden eine Reihe von Problemen, die vorher recherchiert und abgeprüft werden sollten.
// Einsatz Date Objekts var start = Date.now(); // Event was einige Zeit braucht: doSomethingForALongTime(); var end = Date.now(); var elapsed = end - start; // elapsed time in milliseconds
// Einsatz Eingebauter Methoden var start = new Date(); // Event was einige Zeit braucht: doSomethingForALongTime(); var end = new Date(); var elapsed = end.getTime() - start.getTime(); // elapsed time in milliseconds
// Testen einer funktion und Rückgabe des Rückgabewertes function printElapsedTime (fTest) { var nStartTime = Date.now(), vReturn = fTest(), nEndTime = Date.now(); alert("Elapsed time: " + String(nEndTime - nStartTime) + " milliseconds"); return vReturn; } yourFunctionReturn = printElapsedTime(yourFunction);
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Initiale Definition. Implementiert in JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) Die Definition von 'Date' in dieser Spezifikation. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) Die Definition von 'Date' in dieser Spezifikation. |
Standard | |
ECMAScript 2017 Draft (ECMA-262) Die Definition von 'Date' in dieser Spezifikation. |
Entwurf |
Browserkompatibilität
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | (Ja) [1] | (Ja) [1] | (Ja) [2] | (Ja) [1] | (Ja) |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) | (Ja) |
[1] Einige Browser haben Probleme beim Analysieren (Parsen) von Daten: 3/14/2012 blog from danvk Comparing FF/IE/Chrome on Parsing Date Strings
[2] ISO8601 Date Format ist nicht Unterstützt im Internet Explorer 8, und andere Versionen können Probleme beim Analysieren (Parsen) von Daten haben