Signatur
Beschreibung
Die schreibgeschützte Zugriffseigenschaft microseconds gibt den Wert des Mikrosekunden-Felds einer Temporal.Duration zurück. Eine Dauer speichert jede Einheit (Jahre bis Nanosekunden) als eigenes Feld. microseconds liefert also nur dieses eine Feld und nicht die Gesamtdauer in Mikrosekunden.
Temporal gleicht Dauern nicht automatisch aus. Temporal.Duration.from({ microseconds: 1500 }) hat den Wert microseconds === 1500 und nicht 1 Millisekunde plus 500 Mikrosekunden. Wenn Sie die Werte auf größere Einheiten verteilen wollen, rufen Sie round({ largestUnit: ... }) auf. Für die Gesamtzahl der Mikrosekunden nutzen Sie total({ unit: "microsecond" }).
Das Vorzeichen des Werts entspricht dem Vorzeichen der ganzen Dauer (sign): Bei negativen Dauern ist er negativ oder 0. Die Eigenschaft ist praktisch für genaue Zeitmessungen, zum Formatieren von Teilen einer Sekunde oder zum Auslesen geparster ISO-8601-Dauern. Dort wird ein Sekundenbruchteil wie "PT0.0015S" auf die Felder milliseconds, microseconds und nanoseconds verteilt.
Rückgabewert
0.Beispiele
Feld auslesen – kein automatischer Ausgleich
const d = Temporal.Duration.from({ milliseconds: 2, microseconds: 1500 });
console.log(d.milliseconds); // Feld bleibt, wie angegeben
console.log(d.microseconds); // 1500, nicht 500!
console.log(d.toString());
ISO-8601-Bruchteile zerlegen
const d = Temporal.Duration.from("PT1.234567891S");
console.log(d.seconds, d.milliseconds, d.microseconds, d.nanoseconds);
Ausgleichen mit round() und Gesamtwert mit total()
const d = Temporal.Duration.from({ microseconds: 1500 });
const balanced = d.round({ largestUnit: "millisecond" });
console.log(balanced.milliseconds, balanced.microseconds);
// Gesamtdauer in Mikrosekunden – unabhängig von der Feldverteilung
const mixed = Temporal.Duration.from({ milliseconds: 3, microseconds: 250 });
console.log(mixed.microseconds, mixed.total({ unit: "microsecond" }));
Vorzeichen und Ändern mit with()
const d = Temporal.Duration.from({ microseconds: 250 });
console.log(d.negated().microseconds); // negativ
// Eigenschaft ist schreibgeschützt – neuen Wert über with() setzen
const changed = d.with({ microseconds: 10 });
console.log(d.microseconds, changed.microseconds);
// Wichtig · Fallstricke
- Nicht die Gesamtdauer:
microsecondsliefert nur ein Feld. Für die Gesamtdauer in Mikrosekunden verwenden Sieduration.total({ unit: "microsecond" }). Bei Dauern mit Tagen, Monaten oder Jahren brauchttotal()zusätzlichrelativeTo. - Kein automatischer Ausgleich: Werte ab 1000 bleiben im Feld stehen. Normalisieren Sie sie bei Bedarf mit
round({ largestUnit }). - Schreibgeschützt: Es gibt nur einen Getter. Eine Zuweisung wird im nicht strikten Modus stillschweigend ignoriert und löst im strikten Modus (z. B. in ES-Modulen) einen
TypeErroraus.Temporal.Duration-Objekte sind unveränderlich; einen geänderten Wert erhalten Sie überwith(). - Genauigkeit: Sehr große Werte (über
Number.MAX_SAFE_INTEGER) sind nicht erlaubt und lösen einenRangeErroraus. - Kompatibilität: Temporal ist neu. Es wird von Firefox 139+ und Chrome/Edge 144+ unterstützt, von Safari noch nicht. Für ältere Umgebungen gibt es den Polyfill
@js-temporal/polyfill.