Start · Sprachen · JavaScript · Referenz · Temporal.ZonedDateTime.prototype.round()

Temporal.ZonedDateTime.prototype.round()

Methode

Gibt ein neues <code>Temporal.ZonedDateTime</code> zurück, das auf eine Zeiteinheit (Tag bis Nanosekunde) gerundet ist. Zeitzone und Zeitumstellungen werden dabei berücksichtigt.

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

Signatur

Temporal.ZonedDateTime.prototype.round(smallestUnit | options)

Beschreibung

round() rundet einen Datum-Uhrzeit-Wert mit Zeitzone auf eine Einheit wie Stunde, Minute oder Tag. Optional gibt man ein Vielfaches an (roundingIncrement, z. B. 15 Minuten) und einen Rundungsmodus ("floor", "ceil", "halfExpand" …). Temporal-Objekte sind unveränderlich: Das Original bleibt unverändert, zurück kommt immer eine neue Instanz.

Typische Einsatzfälle sind Zeitraster für Kalender und Terminbuchungen, das Zusammenfassen von Messwerten pro Stunde oder Tag und das Entfernen störender Sekundenbruchteile vor der Anzeige oder vor einem Vergleich mit equals().

Einheiten unterhalb eines Tages werden auf der lokalen Uhrzeit gerundet. In einer Zeitzone mit +05:30 landet eine Rundung auf "hour" also auf einer vollen lokalen Stunde und nicht auf einer vollen UTC-Stunde. Beim Runden auf "day" gilt dagegen die tatsächliche Tageslänge in der Zeitzone: An einem Tag mit Zeitumstellung hat der Tag 23 oder 25 Stunden. Die tatsächlich seit Mitternacht vergangene Zeit wird mit dieser Länge verglichen. Danach wird der Offset neu bestimmt, Zeitzone und Kalender bleiben erhalten.

Auf Wochen, Monate oder Jahre kann man nicht runden. Dafür gibt es z. B. startOfDay(), with() oder Temporal.Duration.prototype.round() mit relativeTo.

Parameter

Name Typ Default Beschreibung
$smallestUnit Pflicht string Kurzform: Zieleinheit als String, "day", "hour", "minute", "second", "millisecond", "microsecond" oder "nanosecond". Pluralformen wie "hours" sind ebenfalls erlaubt. Gleichbedeutend mit { smallestUnit }.
$options Pflicht Object Alternativ ein Optionsobjekt mit den folgenden Eigenschaften.
$options.smallestUnit Pflicht string Zieleinheit (siehe oben). Pflicht, sonst wird ein RangeError geworfen.
$options.roundingIncrement number 1 Vielfaches der Einheit, z. B. 15 bei "minute". Der Wert muss die nächstgrößere Einheit ohne Rest teilen und kleiner als sie sein (Minuten: Teiler von 60, Stunden: Teiler von 24). Bei "day" ist nur 1 erlaubt.
$options.roundingMode string "halfExpand" Rundungsmodus: "ceil", "floor", "expand", "trunc", "halfCeil", "halfFloor", "halfExpand", "halfTrunc" oder "halfEven". Der Standard "halfExpand" entspricht dem kaufmännischen Runden.

Rückgabewert

Typ
Temporal.ZonedDateTime
Beschreibung
Ein neues Temporal.ZonedDateTime mit gleicher Zeitzone und gleichem Kalender, gerundet auf die angegebene Einheit. Der Offset wird bei Bedarf neu berechnet.