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

Temporal.Duration.prototype.microseconds

Eigenschaft

Liefert die Anzahl der Mikrosekunden (<code>microseconds</code>-Feld) einer <code>Temporal.Duration</code> als ganze Zahl, ohne Umrechnung in andere Einheiten.

seit JavaScript ES2026 (Temporal) – Firefox 139+, Chrome/Edge 144+ Kategorie: method-property

Signatur

get Temporal.Duration.prototype.microseconds

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

Typ
number
Beschreibung
Ganze Zahl mit dem Mikrosekunden-Feld der Dauer. Sie hat dasselbe Vorzeichen wie die Dauer; ist das Feld nicht gesetzt, ist der Wert 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());
2 1500 PT0.0035S

ISO-8601-Bruchteile zerlegen

const d = Temporal.Duration.from("PT1.234567891S");

console.log(d.seconds, d.milliseconds, d.microseconds, d.nanoseconds);
1 234 567 891

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" }));
1 500 250 3250

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);
-250 250 10

// Wichtig · Fallstricke

  • Nicht die Gesamtdauer: microseconds liefert nur ein Feld. Für die Gesamtdauer in Mikrosekunden verwenden Sie duration.total({ unit: "microsecond" }). Bei Dauern mit Tagen, Monaten oder Jahren braucht total() zusätzlich relativeTo.
  • 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 TypeError aus. Temporal.Duration-Objekte sind unveränderlich; einen geänderten Wert erhalten Sie über with().
  • Genauigkeit: Sehr große Werte (über Number.MAX_SAFE_INTEGER) sind nicht erlaubt und lösen einen RangeError aus.
  • 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.