Start · Sprachen · JavaScript · Referenz · Temporal.PlainDateTime.prototype.hour

Temporal.PlainDateTime.prototype.hour

Eigenschaft

Gibt die Stundenkomponente eines <code>Temporal.PlainDateTime</code> als ganze Zahl von <code>0</code> bis <code>23</code> zurück.

seit JavaScript ES2026 (Temporal); Firefox 139+, Chrome 144+; Safa Kategorie: method-property

Signatur

get Temporal.PlainDateTime.prototype.hour

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

Typ
number
Beschreibung
Ganze Zahl von 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);
14 0

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());
9 2024-06-01T17:15:00

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")));
(abhängig von der aktuellen Uhrzeit) Guten Abend

Ü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);
1 1 2025

// Wichtig · Fallstricke

  • Schreibgeschützt: dt.hour = 5 ändert nichts und wirft im Strict Mode einen TypeError. Verwenden Sie stattdessen dt.with({ hour: 5 }).
  • Keine Zeitzone: Bei PlainDateTime gibt es keine Sommerzeitlücken. Ein Wert wie 02:30 kann also gültig sein, obwohl es diese Uhrzeit in einer bestimmten Zeitzone nicht gibt. Wandeln Sie mit toZonedDateTime() um, wenn Sie die tatsächliche Ortszeit brauchen.
  • Kein 12-Stunden-Format: hour liefert keine AM/PM-Angabe. Für eine landesübliche Anzeige nutzen Sie toLocaleString() bzw. Intl.DateTimeFormat.
  • Bei with() und from() werden Werte außerhalb von 0–23 standardmäßig begrenzt (overflow: \"constrain\"). Mit overflow: \"reject\" wird stattdessen ein RangeError geworfen.
  • Kompatibilität: Temporal ist eine neue API und noch nicht in allen Browsern verfügbar. Bei Bedarf hilft ein Polyfill wie @js-temporal/polyfill oder temporal-polyfill.