Start · Sprachen · JavaScript · Referenz · Temporal.Duration.prototype.minutes

Temporal.Duration.prototype.minutes

Eigenschaft

Gibt die Minuten-Komponente einer <code>Temporal.Duration</code> als ganze Zahl zurück. Bei negativer Dauer ist sie negativ oder 0.

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

Signatur

get Temporal.Duration.prototype.minutes

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

Typ
number
Beschreibung
Eine ganze Zahl mit dem Minutenfeld der Dauer. Ihr Vorzeichen ist dasselbe wie das der Dauer (oder 0). Werte über 59 sind möglich, wenn die Dauer nicht ausgeglichen ist.

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
1 30

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" }));
90 1 30 90

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);
2:25 h

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());
-45 -1 PT2H

// Wichtig · Fallstricke

  • Nicht die Gesamtdauer: minutes liefert nur das Minutenfeld. Temporal.Duration.from("PT2H5M").minutes ist 5 und nicht 125. Für die Gesamtminuten nutzt du total({ unit: "minute" }). Enthält die Dauer Kalendereinheiten (Jahre, Monate, Wochen), braucht total() zusätzlich relativeTo.
  • Kein Ausgleich: Werte ab 60 bleiben erhalten, bis du round() mit largestUnit aufrufst.
  • Schreibgeschützt: Die Eigenschaft hat nur einen Getter. Temporal.Duration ist unveränderlich (immutable), deshalb erzeugst du neue Werte mit with(), add() oder subtract().
  • Vorzeichen: Bei negativen Dauern ist der Wert negativ (oder 0). Ein Betrag ohne Vorzeichen lässt sich z. B. mit d.abs().minutes ermitteln.
  • 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/polyfill oder temporal-polyfill.