Die Methode Date.prototype.getHours() gibt die Stunde eines Date-Objekts in der lokalen Zeitzone zurück. Der Rückgabewert ist eine Ganzzahl zwischen 0 und 23 und folgt damit dem 24-Stunden-Format (auch als militärisches Format bekannt). Eine native Methode für das 12-Stunden-Format mit AM/PM existiert nicht – für solche Anzeigen muss entweder mit Modulo gerechnet oder Intl.DateTimeFormat verwendet werden. Diese Methode ist die Grundlage für jede Art von zeitabhängiger Logik im Code: von Tageszeit-Begrüßungen bis zur Steuerung automatisierter Aufgaben.
Funktionsweise
getHours() extrahiert ausschließlich die Stundenkomponente einer Date-Instanz. Da das Ergebnis von der lokalen Zeitzone abhängt, kann derselbe absolute Zeitpunkt in unterschiedlichen Regionen abweichende Stundenwerte liefern – ein zentraler Stolperstein bei verteilten Systemen.
- Mitternacht: Wert
0(nicht24). - Mittag: Wert
12. - 23 Uhr: Wert
23(höchster gültiger Wert).
Für eine zeitzonenunabhängige Variante steht getUTCHours() zur Verfügung – empfohlen für Logging, Server-zu-Server-Kommunikation und Persistenz.
Syntax
date.getHours()Die Methode erwartet keine Parameter.
Rückgabewert
Eine Ganzzahl zwischen 0 und 23, die die Stunde in der lokalen Zeitzone repräsentiert. Bei einem ungültigen Datum wird NaN zurückgegeben.
Beispiele
Stunde eines Datums auslesen
const date = new Date("2026-05-01T14:30:00");
console.log(date.getHours());14Tageszeit-Begrüßung
Eine sehr typische Anwendung von getHours(): eine kontextabhängige Begrüßung auswählen.
function gruss(date = new Date()) {
const h = date.getHours();
if (h < 5) return "Gute Nacht";
if (h < 12) return "Guten Morgen";
if (h < 18) return "Guten Tag";
return "Guten Abend";
}
console.log(gruss(new Date("2026-05-01T07:00:00")));
console.log(gruss(new Date("2026-05-01T15:00:00")));
console.log(gruss(new Date("2026-05-01T20:00:00")));Guten Morgen
Guten Tag
Guten Abend12-Stunden-Format mit AM/PM
Da JavaScript nativ kein 12-Stunden-Format kennt, muss es manuell aus dem 24-Stunden-Wert berechnet werden.
function format12h(date) {
const h24 = date.getHours();
const period = h24 >= 12 ? "PM" : "AM";
const h12 = h24 % 12 || 12;
return `${h12}:${String(date.getMinutes()).padStart(2, "0")} ${period}`;
}
console.log(format12h(new Date("2026-05-01T00:30:00")));
console.log(format12h(new Date("2026-05-01T13:45:00")));12:30 AM
1:45 PMGeschäftszeiten prüfen
function istGeschaeftszeit(date) {
const h = date.getHours();
const day = date.getDay();
const werktag = day >= 1 && day <= 5;
return werktag && h >= 9 && h < 18;
}
console.log(istGeschaeftszeit(new Date("2026-05-01T10:00:00"))); // Fr 10:00
console.log(istGeschaeftszeit(new Date("2026-05-01T19:00:00"))); // Fr 19:00
console.log(istGeschaeftszeit(new Date("2026-05-02T10:00:00"))); // Sa 10:00true
false
falseHinweise & verwandte Methoden
- Für eine zeitzonenunabhängige Variante:
Date.prototype.getUTCHours(). - Zum Setzen der Stunde:
Date.prototype.setHours()– kann auch Minuten, Sekunden und Millisekunden in einem Aufruf setzen. - Für lokalisierte Zeitausgaben (z. B. „14:30” oder „2:30 PM” je nach Locale):
Intl.DateTimeFormatoderDate.prototype.toLocaleTimeString(). - Achtung bei Sommerzeit-Übergängen: Am Tag der Zeitumstellung kann
getHours()Werte liefern, die nicht den normalerweise erwarteten Stundenoffset zur UTC widerspiegeln.