Temporal.ZonedDateTime.prototype.round()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die round() Methode von Temporal.ZonedDateTime Instanzen gibt ein neues Temporal.ZonedDateTime Objekt zurück, das diesen Datum-Uhrzeit-Wert auf die angegebene Einheit gerundet darstellt.
Syntax
round(smallestUnit)
round(options)
Parameter
smallestUnit-
Ein String, der die
smallestUnitOption darstellt. Dies ist eine Komfortüberladung, sodassround(smallestUnit)äquivalent zuround({ smallestUnit })ist, wobeismallestUnitein String ist. options-
Ein Objekt, das einige oder alle der folgenden Eigenschaften enthält (in der Reihenfolge, in der sie abgerufen und validiert werden):
roundingIncrementOptional-
Eine Zahl (auf eine ganze Zahl gekürzt), die das Rundungsinkrement in der angegebenen
smallestUnitdarstellt. Standardwert ist1. Für alle Werte vonsmallestUnitaußer"day"muss das Inkrement ein Teiler des Maximalwertes der Einheit sein; zum Beispiel, wenn die Einheit Stunden ist, muss das Inkrement ein Teiler von 24 sein und darf nicht 24 selbst sein, was bedeutet, dass es 1, 2, 3, 4, 6, 8 oder 12 sein kann. Für"day"muss das Inkrement 1 sein. roundingModeOptional-
Ein String, der angibt, wie der Bruchteil der
smallestUnitgerundet werden soll. SieheIntl.NumberFormat(). Standardwert ist"halfExpand". smallestUnit-
Ein String, der die kleinste Einheit darstellt, die in die Ausgabe aufgenommen werden soll. Der Wert muss einer der folgenden sein:
"day","hour","minute","second","millisecond","microsecond","nanosecond"oder ihre Pluralformen. Für größere Einheiten als"nanosecond"werden Bruchteile dersmallestUnitgemäß den Einstellungen vonroundingIncrementundroundingModegerundet.
Rückgabewert
Ein neues Temporal.ZonedDateTime Objekt, das diese Datum-Uhrzeit auf die angegebene Einheit gerundet darstellt, wobei alle Einheiten kleiner als smallestUnit auf null gesetzt werden.
Wenn smallestUnit "day" ist, wird die zurückgegebene Datum-Uhrzeit der Beginn des Tages dieses Datums oder des nächsten Tages sein, abhängig vom roundingMode und der Entfernung zu diesen beiden Zeitpunkten. Andernfalls wird die Rundung zuerst auf ihrer PlainDateTime durchgeführt (gleich wie Temporal.PlainDateTime.prototype.round()) und dann in derselben Zeitzone neu interpretiert, mit disambiguation: "compatible", offset: "prefer". Siehe Mehrdeutigkeit und Lücken von lokaler Zeit zu UTC Zeit und Offset-Mehrdeutigkeit.
Ausnahmen
RangeError-
Wird ausgelöst, wenn eine der Optionen ungültig ist.
Beispiele
>Abrunden von kleinen Einheiten
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T12:34:56.123456789[America/New_York]",
);
const nearestMillisecond = zdt.round("millisecond");
console.log(nearestMillisecond.toString()); // 2021-07-01T12:34:56.123-04:00[America/New_York]
const nearestHalfHour = zdt.round({
smallestUnit: "minute",
roundingIncrement: 30,
});
console.log(nearestHalfHour.toString()); // 2021-07-01T12:30:00-04:00[America/New_York]
const nextDay = zdt.round({ smallestUnit: "day", roundingMode: "ceil" });
console.log(nextDay.toString()); // 2021-07-02T00:00:00-04:00[America/New_York]
Mehrdeutigkeit nach Rundung
Es ist möglich, dass die gerundete Datum-Uhrzeit in der angegebenen Zeitzone mehrdeutig ist. Die Mehrdeutigkeit wird immer mit disambiguation: "compatible", offset: "prefer" aufgelöst. Hier ist ein kurzes Beispiel:
const zdt = Temporal.ZonedDateTime.from(
"2024-03-10T01:00:00-05:00[America/New_York]",
);
const rounded = zdt.round({ smallestUnit: "hour", roundingIncrement: 2 });
// The result is supposed to be 2024-03-10T02:00:00-05:00[America/New_York],
// but this time does not exist. `disambiguation: "compatible"` tells us to move
// forward by 1 hour.
console.log(rounded.toString()); // 2024-03-10T03:00:00-04:00[America/New_York]
Spezifikationen
| Specification |
|---|
| Temporal> # sec-temporal.zoneddatetime.prototype.round> |