Signatur
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
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);
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());
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`);
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());
// Wichtig · Fallstricke
- Nur lesbar: Eine Zuweisung wie
dt.millisecond = 5ändert nichts; im Strict Mode wirft sie einenTypeError. Ändern Sie den Wert mitwith(). - 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. Mitoverflow: "reject"gibt es stattdessen einenRangeError. - Keine Zeitzone:
PlainDateTimeist eine „Wanduhr“-Zeit ohne Zeitzone. Für echte Zeitpunkte verwenden SieTemporal.ZonedDateTimeoderTemporal.Instant. - Kompatibilität: Temporal ist neu (Firefox 139+, Chrome 144+). In anderen Umgebungen brauchen Sie einen Polyfill wie
@js-temporal/polyfillodertemporal-polyfill.