Signatur
Beschreibung
Die Zugriffs-Eigenschaft minutes liest das Minutenfeld einer Temporal.Duration. Eine Dauer besteht aus einzelnen Feldern (years, months, weeks, days, hours, minutes, seconds usw.). minutes liefert nur dieses Feld und nicht die Gesamtdauer in Minuten.
Wichtig: Eine Dauer wird nicht automatisch ausgeglichen. Temporal.Duration.from({ minutes: 90 }) behält minutes === 90 und wird nicht zu 1 Stunde und 30 Minuten umgerechnet. Wenn du die Dauer in größere Einheiten umrechnen willst, nutze round({ largestUnit: "hour" }). Die Gesamtzahl der Minuten bekommst du mit total({ unit: "minute" }).
Die Eigenschaft eignet sich gut, um Dauern für die Anzeige zu formatieren, etwa „2 Std. 25 Min.“ oder 2:25. Sie passt auch zu Ergebnissen von until() und since(). Ist die Dauer negativ, hat der Wert dasselbe Vorzeichen wie die gesamte Dauer (siehe sign).
Rückgabewert
Beispiele
Minutenfeld aus einer ISO-8601-Dauer lesen
const d = Temporal.Duration.from("PT1H30M");
console.log(d.hours); // Stunden-Feld
console.log(d.minutes); // nur das Minuten-Feld
Kein automatischer Ausgleich – round() und total() nutzen
const d = Temporal.Duration.from({ minutes: 90 });
console.log(d.minutes); // 90, nicht 30!
const balanced = d.round({ largestUnit: "hour" });
console.log(balanced.hours, balanced.minutes);
// Gesamtdauer in Minuten
console.log(Temporal.Duration.from("PT1H30M").total({ unit: "minute" }));
Arbeitszeit berechnen und formatiert ausgeben
const start = Temporal.PlainTime.from("09:15");
const end = Temporal.PlainTime.from("11:40");
const diff = start.until(end); // largestUnit standardmäßig "hour"
const label = `${diff.hours}:${String(diff.minutes).padStart(2, "0")} h`;
console.log(label);
Negative Dauer und Ändern per with()
const d = Temporal.Duration.from("-PT45M");
console.log(d.minutes, d.sign);
// minutes ist schreibgeschützt – neue Instanz erzeugen
const changed = Temporal.Duration.from("PT2H10M").with({ minutes: 0 });
console.log(changed.toString());
// Wichtig · Fallstricke
- Nicht die Gesamtdauer:
minutesliefert nur das Minutenfeld.Temporal.Duration.from("PT2H5M").minutesist5und nicht125. Für die Gesamtminuten nutzt dutotal({ unit: "minute" }). Enthält die Dauer Kalendereinheiten (Jahre, Monate, Wochen), brauchttotal()zusätzlichrelativeTo. - Kein Ausgleich: Werte ab 60 bleiben erhalten, bis du
round()mitlargestUnitaufrufst. - Schreibgeschützt: Die Eigenschaft hat nur einen Getter.
Temporal.Durationist unveränderlich (immutable), deshalb erzeugst du neue Werte mitwith(),add()odersubtract(). - Vorzeichen: Bei negativen Dauern ist der Wert negativ (oder 0). Ein Betrag ohne Vorzeichen lässt sich z. B. mit
d.abs().minutesermitteln. - Kompatibilität: Temporal ist erst seit Kurzem in Browsern verfügbar (Firefox 139+, Chrome 144+). Safari unterstützt es noch nicht, und in Node.js ist es nur teilweise vorhanden. Für den Einsatz in Produktion empfiehlt sich ein Polyfill wie
@js-temporal/polyfillodertemporal-polyfill.