Temporal.PlainDateTime.prototype.with()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die with() Methode von Temporal.PlainDateTime Instanzen gibt ein neues Temporal.PlainDateTime Objekt zurück, das dieses Datum mit einigen Feldern repräsentiert, die durch neue Werte ersetzt wurden. Da alle Temporal Objekte als unveränderlich konzipiert sind, funktioniert diese Methode im Wesentlichen als Setter für die Felder des Datums.
Um die calendarId Eigenschaft zu ersetzen, verwenden Sie stattdessen die withCalendar() Methode.
Syntax
with(info)
with(info, options)
Parameter
info-
Ein Objekt, das mindestens eine der Eigenschaften enthält, die von
Temporal.PlainDateTime.from()erkannt werden (außercalendar):day,eraunderaYear,hour,microsecond,millisecond,minute,month,monthCode,nanosecond,second,year. Nicht angegebene Eigenschaften verwenden die Werte des ursprünglichen Datums. Sie müssen nur eines vonmonthodermonthCodeund eines voneraunderaYearoderyearangeben, und das andere wird entsprechend aktualisiert. optionsOptional-
Ein Objekt, das die folgende Eigenschaft enthält:
overflowOptional-
Ein String, der das Verhalten angibt, wenn eine Datumskomponente außerhalb des Bereichs liegt. Mögliche Werte sind:
"constrain"(Standard)-
Die Datumskomponente wird auf den gültigen Bereich eingeschränkt.
"reject"-
Ein
RangeErrorwird ausgelöst, wenn die Datumskomponente außerhalb des Bereichs liegt.
Rückgabewert
Ein neues Temporal.PlainDateTime Objekt, bei dem die in info angegebenen Felder, die nicht undefined sind, durch die entsprechenden Werte ersetzt werden und die restlichen Felder aus dem ursprünglichen Datum übernommen werden.
Ausnahmen
TypeError-
Wird in einem der folgenden Fälle ausgelöst:
infoist kein Objekt.optionsist kein Objekt oderundefined.
RangeError-
Wird in einem der folgenden Fälle ausgelöst:
- Die angegebenen Eigenschaften, die dieselbe Komponente angeben, sind nicht konsistent.
- Die angegebenen nicht-numerischen Eigenschaften sind nicht gültig; beispielsweise, wenn
monthCodenie ein gültiger Monatscode in diesem Kalender ist. - Die angegebenen numerischen Eigenschaften liegen außerhalb des Bereichs und
options.overflowist auf"reject"gesetzt. - Das Ergebnis liegt nicht im darstellbaren Bereich, der ±(108 + 1) Tage oder etwa ±273,972.6 Jahre ab der Unix-Epoche beträgt.
Beispiele
>Verwendung von with()
const dt = Temporal.PlainDateTime.from("2021-07-01T12:34:56");
const newDT = dt.with({ hour: 13 });
console.log(newDT.toString()); // "2021-07-01T13:34:56"
const newDT2 = dt.with({ month: 2, day: 22, millisecond: 222 });
console.log(newDT2.toString()); // "2021-02-22T13:34:56.222"
const nextDecade = dt.with({ year: dt.year + 10 });
console.log(nextDecade.toString()); // "2031-07-01T13:34:56"
Für weitere Beispiele siehe die Dokumentation der einzelnen Eigenschaften, die mit with() gesetzt werden können.
Spezifikationen
| Specification |
|---|
| Temporal> # sec-temporal.plaindatetime.prototype.with> |