Signatur
Beschreibung
Die Zugriffseigenschaft minute gibt die Minutenkomponente der lokalen Uhrzeit eines Temporal.ZonedDateTime zurück. Diese Uhrzeit ergibt sich aus dem zugrunde liegenden exakten Zeitpunkt, der Zeitzone (timeZoneId) und dem Kalender der Instanz. Der Wert ist immer eine ganze Zahl zwischen 0 und 59. Schaltsekunden kennt Temporal nicht.
Die Zeitzone hat direkten Einfluss auf den Wert: Derselbe Zeitpunkt kann in verschiedenen Zeitzonen unterschiedliche Minuten haben, weil es Zeitzonen mit halb- oder dreiviertelstündigem Versatz gibt, z. B. Asia/Kolkata (+05:30) oder Asia/Kathmandu (+05:45). Genau dafür ist ZonedDateTime gedacht: Du bekommst die Minute, die eine Wanduhr vor Ort anzeigt.
Die Eigenschaft kann nur gelesen werden. Um die Minute zu ändern, erzeugst du mit with({ minute }) eine neue Instanz. Wenn du auf ein festes Raster runden willst (z. B. Viertelstunden), nimmst du round(). Typische Anwendungen sind die Anzeige von Uhrzeiten, die Einteilung in Zeitfenster und die Prüfung, ob ein Termin zur vollen Stunde beginnt.
Rückgabewert
0 bis 59: die Minute der lokalen Uhrzeit in der Zeitzone der Instanz.Beispiele
Minute eines Zeitpunkts auslesen
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T12:34:56-04:00[America/New_York]"
);
console.log(zdt.minute);
console.log(zdt.hour);
Gleicher Zeitpunkt, andere Minute je nach Zeitzone
const instant = Temporal.Instant.from("2024-03-10T08:00:00Z");
for (const tz of ["Europe/Berlin", "Asia/Kolkata", "Asia/Kathmandu"]) {
const lokal = instant.toZonedDateTimeISO(tz);
console.log(`${tz}: ${lokal.hour}:${String(lokal.minute).padStart(2, "0")}`);
}
Auf Viertelstunden-Slot abrunden (Terminbuchung)
const jetzt = Temporal.ZonedDateTime.from(
"2024-05-14T10:52:18+02:00[Europe/Berlin]"
);
// Variante 1: manuell über minute + with()
const slotStart = jetzt.with({
minute: Math.floor(jetzt.minute / 15) * 15,
second: 0, millisecond: 0, microsecond: 0, nanosecond: 0
});
// Variante 2: eingebautes Runden
const gerundet = jetzt.round({
smallestUnit: "minute",
roundingIncrement: 15,
roundingMode: "floor"
});
console.log(slotStart.minute, gerundet.minute);
console.log(slotStart.equals(gerundet));
Prüfen, ob ein Termin zur vollen Stunde beginnt
const termine = [
"2024-06-01T09:00:00+02:00[Europe/Berlin]",
"2024-06-01T10:30:00+02:00[Europe/Berlin]"
].map((s) => Temporal.ZonedDateTime.from(s));
const volleStunde = termine.filter((t) => t.minute === 0 && t.second === 0);
console.log(volleStunde.map((t) => t.toPlainTime().toString()));
// Wichtig · Fallstricke
- Nur lesbar: Die Eigenschaft hat keinen Setter.
zdt.minute = 5wird im nicht-strikten Modus stillschweigend ignoriert und löst im strikten Modus (Module, Klassen) einenTypeErroraus. Eine geänderte Kopie erzeugst du mitzdt.with({ minute: 5 }). - Abhängig von der Zeitzone:
minuteist die Minute der Wanduhr vor Ort und nicht die UTC-Minute. Die UTC-Minute bekommst du überzdt.withTimeZone("UTC").minute. - Zeitumstellung:
with({ minute })kann eine lokale Uhrzeit ergeben, die es wegen einer Zeitumstellung nicht gibt oder doppelt gibt. Wie das aufgelöst wird, steuert die Optiondisambiguation(Standard"compatible"). Beachte außerdem, dass manche Zeitzonen (z. B.Australia/Lord_Howe) die Uhr nur um 30 Minuten umstellen. - Kompatibilität: Temporal ist erst in neueren Browsern verfügbar (Firefox 139+, Chrome/Edge 144+). Safari und ältere Node.js-Versionen unterstützen es noch nicht. Als Ausweichlösung eignet sich das Polyfill
@js-temporal/polyfill. Mittypeof Temporal !== "undefined"kannst du prüfen, ob Temporal vorhanden ist.