Start · Sprachen · JavaScript · Referenz · Temporal.PlainDateTime.prototype.millisecond

Temporal.PlainDateTime.prototype.millisecond

Eigenschaft

Liefert die Millisekundenkomponente (0–999) eines <code>Temporal.PlainDateTime</code>-Werts als ganze Zahl.

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

Signatur

get Temporal.PlainDateTime.prototype.millisecond

Beschreibung

Die schreibgeschützte Zugriffseigenschaft millisecond gibt den Millisekundenanteil der Uhrzeit eines Temporal.PlainDateTime-Objekts zurück, also die ersten drei Nachkommastellen der Sekunde (10-3 s). Der Wert ist immer eine ganze Zahl von 0 bis 999.

Temporal speichert Zeitangaben mit Nanosekunden-Genauigkeit. Der Sekundenbruchteil ist auf drei Eigenschaften verteilt: millisecond, microsecond und nanosecond. Bei 12:30:45.123456789 ergibt millisecond also 123, microsecond 456 und nanosecond 789. Die Eigenschaft rundet nicht, sie schneidet einfach ab.

Brauchbar ist millisecond für eigene Formatierungen, zum Protokollieren von Zeitstempeln oder zum Vergleichen und Prüfen einzelner Zeitkomponenten. Einen geänderten Wert erzeugt man mit with({ millisecond: … }), denn Temporal-Objekte sind unveränderlich (immutable). Direkt zuweisen lässt sich die Eigenschaft nicht.

Rückgabewert

Typ
number
Beschreibung
Ganze Zahl von 0 bis 999: der Millisekundenanteil der Uhrzeit.

Beispiele

Millisekunden auslesen

const dt = Temporal.PlainDateTime.from("2024-03-15T12:30:45.123456789");
console.log(dt.millisecond);
console.log(dt.microsecond);
console.log(dt.nanosecond);
123 456 789

Millisekunden mit with() ändern

const start = Temporal.PlainDateTime.from("2024-03-15T08:00:00.500");
const genau = start.with({ millisecond: 999 });
console.log(start.millisecond); // Original bleibt unverändert
console.log(genau.toString());
500 2024-03-15T08:00:00.999

Log-Zeitstempel selbst formatieren

const pad = (n, len = 2) => String(n).padStart(len, "0");

const formatLogTime = (dt) =>
  `${pad(dt.hour)}:${pad(dt.minute)}:${pad(dt.second)}.${pad(dt.millisecond, 3)}`;

const jetzt = Temporal.PlainDateTime.from("2024-03-15T09:05:07.042");
console.log(`[${formatLogTime(jetzt)}] Server gestartet`);
[09:05:07.042] Server gestartet

Kein Runden, sondern Abschneiden

const dt = Temporal.PlainDateTime.from("2024-01-01T00:00:00.999999999");
console.log(dt.millisecond);
// Zum Runden round() verwenden:
console.log(dt.round({ smallestUnit: "millisecond" }).toString());
999 2024-01-01T00:00:01

// Wichtig · Fallstricke

  • Nur lesbar: Eine Zuweisung wie dt.millisecond = 5 ändert nichts; im Strict Mode wirft sie einen TypeError. Ändern Sie den Wert mit with().
  • Abschneiden statt Runden: Mikro- und Nanosekunden verschwinden einfach. Zum Runden nehmen Sie round({ smallestUnit: "millisecond" }).
  • Wertebereich bei with(): Werte außerhalb von 0–999 werden standardmäßig (overflow: "constrain") auf den gültigen Bereich begrenzt. Mit overflow: "reject" gibt es stattdessen einen RangeError.
  • Keine Zeitzone: PlainDateTime ist eine „Wanduhr“-Zeit ohne Zeitzone. Für echte Zeitpunkte verwenden Sie Temporal.ZonedDateTime oder Temporal.Instant.
  • Kompatibilität: Temporal ist neu (Firefox 139+, Chrome 144+). In anderen Umgebungen brauchen Sie einen Polyfill wie @js-temporal/polyfill oder temporal-polyfill.