Signatur
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
Temporal.ZonedDateTime mit gleicher Zeitzone und gleichem Kalender, gerundet auf die angegebene Einheit. Der Offset wird bei Bedarf neu berechnet.