Temporal.PlainDate.prototype.with()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die Methode with()
von Temporal.PlainDate
-Instanzen gibt ein neues Temporal.PlainDate
-Objekt zurück, das dieses Datum mit einigen Feldern darstellt, die durch neue Werte ersetzt wurden. Da alle Temporal
-Objekte so konzipiert sind, dass sie unveränderbar sind, fungiert diese Methode im Wesentlichen als Setter für die Felder des Datums.
Um die Eigenschaft calendarId
zu ersetzen, verwenden Sie stattdessen die Methode withCalendar()
.
Syntax
with(info)
with(info, options)
Parameter
info
-
Ein Objekt, das mindestens eine der von
Temporal.PlainDate.from()
erkannten Eigenschaften enthält (außercalendar
):day
,era
underaYear
,month
,monthCode
,year
. Nicht angegebene Eigenschaften verwenden die Werte des ursprünglichen Datums. Sie müssen nur eine vonmonth
odermonthCode
angeben und eine vonera
underaYear
oderyear
, und die andere wird entsprechend aktualisiert. options
Optional-
Ein Objekt, das die folgende Eigenschaft enthält:
overflow
Optional-
Ein String, der das Verhalten angibt, wenn eine Datumskomponente außerhalb des gültigen Bereichs liegt. Mögliche Werte sind:
"constrain"
(Standard)-
Die Datumskomponente wird auf den gültigen Bereich eingeschränkt.
"reject"
-
Ein
RangeError
wird ausgelöst, wenn die Datumskomponente außerhalb des gültigen Bereichs liegt.
Rückgabewert
Ein neues Temporal.PlainDate
-Objekt, bei dem die in info
angegebenen Felder, die nicht undefined
sind, durch die entsprechenden Werte ersetzt werden, und die restlichen Felder vom ursprünglichen Datum kopiert werden.
Ausnahmen
TypeError
-
Wird in einem der folgenden Fälle ausgelöst:
info
ist kein Objekt.options
ist kein Objekt oderundefined
.
RangeError
-
Wird in einem der folgenden Fälle ausgelöst:
- Die angegebenen Eigenschaften, die dieselbe Komponente angeben, sind inkonsistent.
- Die angegebenen nicht-numerischen Eigenschaften sind ungültig; zum Beispiel, wenn
monthCode
niemals ein gültiger Monatscode in diesem Kalender ist. - Die angegebenen numerischen Eigenschaften liegen außerhalb des gültigen Bereichs und
options.overflow
ist auf"reject"
gesetzt. - Das Ergebnis liegt nicht im darstellbaren Bereich, welcher ±(108 + 1) Tage, oder etwa ±273.972,6 Jahre, ab dem Unix-Epoch beträgt.
Beispiele
Verwendung von with()
const date = Temporal.PlainDate.from("2021-07-06");
const newDate = date.with({ day: date.daysInMonth });
console.log(newDate.toString()); // 2021-07-31
const nextDecade = date.with({ year: date.year + 10 });
console.log(nextDecade.toString()); // 2031-07-06
Für weitere Beispiele siehe die Dokumentation der einzelnen Eigenschaften, die mit with()
festgelegt werden können.
Spezifikationen
Specification |
---|
Temporal # sec-temporal.plaindate.prototype.with |