Datumsangaben
Ein Datum kann in JavaScript mittels des Objekts Date
dargestellt werden. Um auf die Bestandteile eines Datums
zuzugreifen, gibt es einige Funktionen, welche wir weiter unten vorstellen. Des Weiteren gibt es auch Funktionen die es
ermöglichen, das Datum im Nachhinein zu verändern. Um ein Datum zu initialisieren (also zu erstellen), stellen wir Ihnen
4 verschiedene Varianten vor. Für alle Varianten ist es notwendig, ein Date
-Objekt mittels des Konstruktors
zu erstellen. Zur Erinnerung: Hierfür notieren wir das Schlüsselwort new
gefolgt von dem Objektnamen (also
Date
) und einem runden Klammernpaar. Innerhalb der Klammern werden die Funktions-Parameter (Konstruktur-Parameter)
übergeben.
Bei der ersten Variante geben wir der Funktion kein Parameter mit. Dadurch erhält das erstellte Datum das aktuelle Datum mit aktueller Uhrzeit.
var datum = new Date();
Die zweite Möglichkeit ist, der Funktion einen nummerischen Wert zu übergeben. Dieser nummerische Wert muss den sogenannten UNIX-Zeitstempel als Millisekundenwert wiederspiegeln. Der UNIX-Zeitstempel ist ein nummerischer Wert, welcher die Sekunden seit dem 01.01.1970 um Mitternacht bis zum gewünschten Zeitpunkt darstellt.
var datum = new Date(1451602800000); // Entspricht 01.01.2016 00:00:00
Eine weitere Variante ist, dem Konstruktur die Einzelteile des Datums und Uhrzeit zu übergeben. Dabei muss die Reihenfolge Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde eingehalten werden. Bitte beachten Sie, dass die Monats-Angabe nullbasierend ist, d. h. Monat 0 entspricht Januar (1), Monat 1 entspricht Februar (2), ... und Monat 11 entspricht Dezember (12).
var datum = new Date(2016, 1, 1, 3, 4, 5, 678); // Entspricht 01.02.2016 03:04:05,678
Die letzte Variante ist die Angabe einer Zeichenkette. Hier muss das Datum (evtl. mit Uhrzeit) in einem bestimmten Format übergeben werden. Leider kann es hier zu Problemen bei einigen Browsern kommen, da nicht alle Formate von jedem Browser unterstützt werden. Die Verwendung des ISO-8601 Formats gilt als sicher und sollte von allen Browsern umgesetzt werden können.
var datum = new Date("2016-02-01"); // Entspricht 01.02.2016 00:00:00
Datumsteile auslesen
Wie bereits oben erwähnt, gibt es einige Funktionen, um die Bestandteile eines Datums und einer Uhrzeit auszulesen. Dabei gibt es Funktionen, mit welchen das UTC-Datum bzw. die UTC-Zeit und das Lokaldatum bzw. die Lokalzeit ausgegeben werden kann. Wird im Konstruktor ein Millisekundenwert übergeben, so wird zu diesem zusätzlich die Zeitdifferenz für die Lokalzeit mit eingerechnet. Bei der Angabe der einzelnen Datums- und Uhrzeit-Bestandteile wird exakt die notierte Angabe als Lokalzeit interpretiert. Bei Angabe der Zeichenkette wird diese als UTC-Zeit interpretiert, sofern nicht im String etwas anderes explizit angegeben ist.
Lokalzeit | getDay() | Gibt den Wochentag zurück (0 = Sonntag, 1 = Montag, ..., 6 = Samstag). |
---|---|---|
getDate() | Gibt den Tag des Monats zurück (1 - 31). | |
getMonth() | Gibt den Monat zurück (0 = Januar, 1 = Februar, ..., 11 = Dezember). | |
getFullYear() | Gibt das Jahr zurück. | |
getHours() | Gibt die Stunden zurück (0 - 23). | |
getMinutes() | Gibt die Minuten zurück (0 - 59). | |
getSeconds() | Gibt die Sekunden zurück (0 - 59). | |
getMilliseconds() | Gibt die Millisekunden zurück (0 - 999). | |
UTC-Zeit | getUTCDay() | Gibt den Wochentag zurück (0 = Sonntag, 1 = Montag, ..., 6 = Samstag). |
getUTCDate() | Gibt den Tag des Monats zurück (1 - 31). | |
getUTCMonth() | Gibt den Monat zurück (0 = Januar, 1 = Februar, ..., 11 = Dezember). | |
getUTCFullYear() | Gibt das Jahr zurück. | |
getUTCHours() | Gibt die Stunden zurück (0 - 23). | |
getUTCMinutes() | Gibt die Minuten zurück (0 - 59). | |
getUTCSeconds() | Gibt die Sekunden zurück (0 - 59). | |
getUTCMilliseconds() | Gibt die Millisekunden zurück (0 - 999). |
Hier folgendes Beispiel zur Ausgabe einiger Datumsbestandteile:
var datum = new Date(); document.write("Datum: " + datum.getDate() + "<br />"); document.write("Monat: " + (datum.getMonth() + 1) + "<br />"); document.write("Jahr: " + datum.getFullYear() + "<br />");
Datumsteile ändern
Passend zu den Funktionen zum Auslesen der Datumsbestandteile gibt es auch Funktionen zum Setzen der Datumsbestandteile. Auch hier gibt es wieder Funktionen für die UTC-Zeit und Lokalzeit.
Lokalzeit | setDate() | Setzt den Tag des Monats (1 - 31). |
---|---|---|
setMonth() | Setzt den Monat (0 = Januar, 1 = Februar, ..., 11 = Dezember). | |
setFullYear() | Setzt das Jahr. | |
setHours() | Setzt die Stunden (0 - 23). | |
setMinutes() | Setzt die Minuten (0 - 59). | |
setSeconds() | Setzt die Sekunden (0 - 59). | |
setMilliseconds() | Setzt die Millisekunden (0 - 999). | |
UTC-Zeit | setUTCDate() | Setzt den Tag des Monats (1 - 31). |
setUTCMonth() | Setzt den Monat (0 = Januar, 1 = Februar, ..., 11 = Dezember). | |
setUTCFullYear() | Setzt das Jahr. | |
setUTCHours() | Setzt die Stunden (0 - 23). | |
setUTCMinutes() | Setzt die Minuten (0 - 59). | |
setUTCSeconds() | Setzt die Sekunden (0 - 59). | |
setUTCMilliseconds() | Setzt die Millisekunden (0 - 999). |
var datum = new Date(); datum.setDate(29); datum.setMonth(0); document.write("Datum: " + datum.getDate() + "<br />"); document.write("Monat: " + (datum.getMonth() + 1) + "<br />"); document.write("Jahr: " + datum.getFullYear() + "<br />");
Übrigens: Mit Hilfe der Funktion getTimezoneOffset()
ist es möglich, die Zeitdifferenz zwischen
UTC-Zeit und Lokalzeit zu ermitteln. Die Funktion gibt einen Minutenwert zurück. In Deutschland gibt die Funktion
-60
(bei Winterzeit) oder -120
(bei Sommerzeit) zurück.
Formatierte Ausgabe
Es gibt einige vorgefertigte Funktionen, um das Datum und die Uhrzeit auszugeben. Dabei geben alle Funktionen bis
auf toUTCString()
und toISOString()
die Lokalzeit zurück. Die folgende Tabelle zeigt alle
verfügbaren Funktionen zur formatierten Ausgabe:
toLocaleDateString() | Gibt das Datum zurück (lokale Darstellung). |
---|---|
toDateString() | Gibt das Datum zurück. |
toLocaleTimeString() | Gibt die Uhrzeit zurück (lokale Darstellung). |
toTimeString() | Gibt die Uhrzeit zurück. |
toLocaleString() | Gibt das Datum und die Uhrzeit zurück (lokale Darstellung). |
toString() | Gibt das Datum und die Uhrzeit zurück. |
toUTCString() | Gibt das Datum und die Uhrzeit mit UTC-Zeit zurück. |
toISOString() | Gibt das Datum und die Uhrzeit im ISO-Format zurück. |
Immer wieder kann es passieren, dass Sie das Datum und die Uhrzeit anders formatieren wollen. Eine solche
Formatierungsfunktion müssen wir uns jedoch selbst schreiben. So ist es, im Gegensatz zu Sprachen wie C (Funktion
strftime()
), nicht möglich, eine Funktion mit sogenannten Kürzeln aufzurufen. Mit Hilfe der Funktionen
getX()
ist es jedoch möglich, unsere Ausgabe zusammenzubauen. Hierzu folgendes Beispiel:
var datum = new Date(); document.write("Datum: " + datum.getDate() + "." + (datum.getMonth() + 1) + "." + datum.getFullYear()); document.write("<br />"); document.write("Uhrzeit: " + datum.getHours() + ":" + datum.getMinutes() + ":" + datum.getSeconds());
Wie Ihnen sicherlich auffallen wird, sind beim obigen Beispiel keine führenden Nullen sichtbar. Eine Funktion
um Zahlen mit führenden Nullen aufzufüllen, gibt es in JavaScript ebenfalls nicht, d. h. wir müssen uns eine solche
Funktion ebenfalls selber schreiben. Da wir bisher noch nicht besprochen haben, wie man eigene Funktionen definiert,
haben wir das „Problem“ mit den führenden Nullen mit einzeiligen if
-Bedingungen direkt bei der Ausgabe
gelöst.
var datum = new Date(); document.write("Datum: " + (datum.getDate() >= 10 ? datum.getDate() : ("0" + datum.getDate())) + "." + ((datum.getMonth() + 1) >= 10 ? (datum.getMonth() + 1) : ("0" + (datum.getMonth() + 1))) + "." + datum.getFullYear()); document.write("<br />"); document.write("Uhrzeit: " + (datum.getHours() >= 10 ? datum.getHours() : ("0" + datum.getHours())) + ":" + (datum.getMinutes() >= 10 ? datum.getMinutes() : ("0" + datum.getMinutes())) + ":" + (datum.getSeconds() >= 10 ? datum.getSeconds() : ("0" + datum.getSeconds())));
Wichtig: Um die Funktionsweise des Date
-Objekts besser kennenzulernen, empfiehlt es sich mit Hilfe von
kleineren „Test-Programmen“ die Funktionen sowie Ein- und Ausgaben des Date-Objekts auszuprobieren.