JavaScript/Objekte/Date/Einführung

Aus SELFHTML-Wiki
< JavaScript‎ | Objekte‎ | Date
Wechseln zu: Navigation, Suche

Das Date-Objekt ist für alle Berechnungen mit Datum und Zeit zuständig. Dabei gibt es, wie in der IT üblich, einen fixen historischen Zeitpunkt, der intern als Speicherungs- und Berechnungsbasis dient. In JavaScript ist dies - wie in der C- und Unix-Welt - der 1. Januar 1970, 0:00 Uhr UTC (Universal Coordinated Time). Die Einheit, in der in JavaScript intern Zeit berechnet wird, ist im Gegensatz zur Sekunde der Unix-Welt aber eine Millisekunde.

Allgemeines zur Verwendung[Bearbeiten]

Date-Objekt erzeugen[Bearbeiten]

Bevor Sie über JavaScript Zugriff auf die eingebauten Datums- und Uhrzeitfunktionen haben, müssen Sie ein neues Date-Objekt erzeugen. Dabei gibt es mehrere Varianten.

Beispiel
// Variante 1:
Objektname = new Date();

// Variante 2:
Objektname = new Date("Monat Tag, Jahr Stunden:Minuten:Sekunden");

// Variante 3:
Objektname = new Date(Jahr, Monat, Tag);

// Variante 4:
Objektname = new Date(Jahr, Monat, Tag, Stunden, Minuten, Sekunden);

// Variante 5:
Objektname = new Date(Millisekunden);

Ein neues Date-Objekt speichern Sie in einem selbst vergebenen Objektnamen. Hinter dem Namen folgt ein Gleichheitszeichen. Dahinter folgt das reservierte Wort new und der Aufruf der Objektfunktion Date().

Benutzen Sie Variante 1, wenn Sie eine Objektinstanz erzeugen wollen, in der das zum Zeitpunkt der Programmausführung aktuelle Datum und die aktuelle Uhrzeit gespeichert werden soll.

Benutzen Sie eine der Varianten 2 bis 5, wenn Sie das neue Datumobjekt mit bestimmten Werten (also einem bestimmten Datum und einer bestimmten Uhrzeit) initialisieren wollen. Alle Initialisierungswerte wie Monat oder Minuten müssen Sie in Zahlenform angeben, also etwa 9 für Monat Oktober.

Ausnahme: bei Variante (2) übergeben Sie die Initialisierungsdaten als Zeichenkette. Dabei wird der Monat in englischer Schreibweise angegeben, also beispielsweise october.

Beachten Sie: Wenn Sie einen Monat als Zahlenwert übergeben, so wie in den Varianten 3 und 4, müssen Sie bei 0 zu zählen beginnen. Für Januar müssen Sie also 0 übergeben, für Februar 1, und für Dezember 11. Dies ist auch der Grund, warum für den Monat Oktober nicht 10 sondern 9 übergeben wird. Bei Variante 5 müssen Sie als Zahl die Anzahl der Millisekunden seit dem 01.01.1970, 0:00 Uhr UTC angeben.

Datum ausgeben[Bearbeiten]

Ein so erzeugtes Objekt kann zur Ausgabe der aktuellen Zeit verwendet werden:

Beispiel ansehen …
var datum = new Date();
document.getElementById('zeit').innerHTML = datum;
Zuerst wird ein neues Date-Objekt erzeugt und der Variable datum zugewiesen. Diese wird ausgegeben, indem das Element mit der id zeit mit innerHTML gefüllt wird.
Beispiel ansehen …
<p>
  Das heutige Datum:
  <time aria-current="date" id="zeit"></time>
</p>
Datums- und Zeitangaben können mit dem time-Element ausgezeichnet werden. Zusätzlich hat das time-Element noch ein aria-current-Attribut, um auch Screenreadern anzuzeigen, dass dies das aktuelle Datum ist.

Datumsausgaben formatieren[Bearbeiten]

Wie Sie sehen, ist die normale Datumsausgabe unformatiert.

Beispiel ansehen …
var datum = new Date();
document.getElementById('zeit').innerHTML = datum;
document.getElementById('utc').innerHTML = datum.toUTCString();
document.getElementById('iso').innerHTML = datum.toISOString();
document.getElementById('loc').innerHTML = datum.toLocaleString('de-DE');
Datums- und Zeitangaben können mit verschiedenen Methoden formatiert werden. Die Methode …
  • datum.toUTCString() wandelt die Zeit in UTC (Universal Coordinated Time) um. Dies entspricht der ehemaligen Standardzeit GMT, ohne jedoch auf Sommer- oder Winterzeit einzugehen.
  • datum.toISOString() formatiert die Datumsangabe in eine Zeichenkette nach ISO 8601 um.
  • datum.toLocaleString() wird durch den übergebenen Parameter 'de-DE' in eine deutschen Gewohnheiten entsprechende Formatierung umgewandelt.

Zeitberechnungen[Bearbeiten]

Im einleitenden Absatz wurde angegeben, dass sich das Date-Objekt auf UTC bezieht. Sobald es aber im Rechner ausgeführt wird, übernimmt es aus der Systemuhr des Rechners die aktuelle Zeitzone.

Beispiel ansehen …
function berechne () {
var jetzt = new Date(),
    zeit = jetzt.getTime() / 1000,
    Jahr2020 = new Date(2020, 0, 1, 0, 0, 0),
    endzeit = Jahr2020.getTime() / 1000,
    rest = Math.floor(endzeit - zeit),
    text = 'Noch ' + rest + ' Sekunden bis zum Jahr 2020.';
document.getElementById('zeit').innerHTML = text;
}
Das Beispiel zeigt eine vollständige JavaScript-Funktion. Die Funktion ermittelt die Anzahl Sekunden zwischen aktuellem Zeitpunkt und dem Jahr 2020. Dazu wird in jetzt eine neue Instanz von Date mit der aktuellen Zeit erzeugt. Für den Zeitpunkt, an dem das Jahr 2020 beginnt, wird eine zweite Objektinstanz von Date erzeugt, nämlich in Jahr2020. Dazu werden der Objektfunktion Date() entprechende Parameter übergeben. Über die beiden Objektnamen jetzt bzw. Jahr2020 wird dann die Methode Objektname.getTime() aufgerufen. getTime() liefert die Anzahl Millisekunden seit dem 01.01.1970 zurück. In der Variablen zeit wird auf diese Weise die Anzahl Sekunden zwischen dem 01.01.1970 und dem aktuellen Zeitpunkt gespeichert, und in der Variablen endzeit die Anzahl Sekunden zwischen dem 01.01.1970 und dem 01.01.2020. Die Differenz der beiden Werte wird in der Variablen rest gespeichert und am Bildschirm ausgegeben.
Beachten Sie: Alle Methoden, mit denen Sie einen aktuellen Zeitpunkt oder einen Teil davon, etwa den Wochentag oder den Monat, ermitteln können, beziehen sich auf die Zeit, die auf der Systemzeit des Anwenderrechners basiert. Denn JavaScript wird beim Anwender von dessen Browser ausgeführt. Die aktuelle Systemzeit des Server-Rechners können Sie mit JavaScript nicht ermitteln.

Weblinks[Bearbeiten]