Signatur
Beschreibung
Die Zugriffs-Eigenschaft hour liefert die Stunde eines Temporal.PlainDateTime-Objekts im 24-Stunden-Format, also eine ganze Zahl zwischen 0 (Mitternacht) und 23. Der Wert hängt nicht vom Kalendersystem ab, weil die Uhrzeit bei allen Kalendern gleich dargestellt wird.
Ein PlainDateTime steht für ein Datum mit Uhrzeit ohne Zeitzone, also eine Uhrzeit, wie man sie an der Wanduhr abliest. hour ist deshalb immer genau die Stunde, die bei der Erstellung angegeben wurde. Umrechnungen nach UTC oder Sommerzeitverschiebungen gibt es dabei nicht. Brauchen Sie die Stunde für einen bestimmten Ort, verwenden Sie Temporal.ZonedDateTime.
Die Eigenschaft ist schreibgeschützt, denn Temporal-Objekte sind unveränderlich. Mit with({ hour }) erzeugen Sie eine neue Instanz mit geänderter Stunde. Die Methoden add() und subtract() verschieben den Zeitpunkt, wobei Überläufe ins Datum übernommen werden.
Rückgabewert
0 bis 23, die Stunde der Uhrzeit.Beispiele
Stunde auslesen
const dt = Temporal.PlainDateTime.from("2024-03-15T14:30:45");
console.log(dt.hour);
const mitternacht = Temporal.PlainDateTime.from("2024-03-15");
console.log(mitternacht.hour);
Stunde per with() ändern (unveränderliches Objekt)
const termin = Temporal.PlainDateTime.from("2024-06-01T09:15");
const spaeter = termin.with({ hour: 17 });
console.log(termin.hour); // Original bleibt unverändert
console.log(spaeter.toString());
Tageszeit-Begrüßung ermitteln
const begruessung = (dt) => {
const h = dt.hour;
if (h < 5) return "Gute Nacht";
if (h < 12) return "Guten Morgen";
if (h < 18) return "Guten Tag";
return "Guten Abend";
};
const jetzt = Temporal.Now.plainDateTimeISO();
console.log(begruessung(jetzt));
console.log(begruessung(Temporal.PlainDateTime.from("2024-01-01T20:00")));
Überlauf beim Addieren von Stunden
const dt = Temporal.PlainDateTime.from("2024-12-31T22:00");
const neu = dt.add({ hours: 3 });
console.log(neu.hour, neu.day, neu.year);
// Wichtig · Fallstricke
- Schreibgeschützt:
dt.hour = 5ändert nichts und wirft im Strict Mode einenTypeError. Verwenden Sie stattdessendt.with({ hour: 5 }). - Keine Zeitzone: Bei
PlainDateTimegibt es keine Sommerzeitlücken. Ein Wert wie02:30kann also gültig sein, obwohl es diese Uhrzeit in einer bestimmten Zeitzone nicht gibt. Wandeln Sie mittoZonedDateTime()um, wenn Sie die tatsächliche Ortszeit brauchen. - Kein 12-Stunden-Format:
hourliefert keine AM/PM-Angabe. Für eine landesübliche Anzeige nutzen SietoLocaleString()bzw.Intl.DateTimeFormat. - Bei
with()undfrom()werden Werte außerhalb von 0–23 standardmäßig begrenzt (overflow: \"constrain\"). Mitoverflow: \"reject\"wird stattdessen einRangeErrorgeworfen. - Kompatibilität: Temporal ist eine neue API und noch nicht in allen Browsern verfügbar. Bei Bedarf hilft ein Polyfill wie
@js-temporal/polyfillodertemporal-polyfill.