Temporal.PlainDate.from()
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more support for this feature? Tell us why.
Die statische Methode Temporal.PlainDate.from() erstellt ein neues Temporal.PlainDate-Objekt aus einem anderen Temporal.PlainDate-Objekt, einem Objekt mit Datumeigenschaften oder einem RFC 9557 String.
Syntax
Temporal.PlainDate.from(info)
Temporal.PlainDate.from(info, options)
Parameter
info-
Einer der folgenden:
-
Eine
Temporal.PlainDate-Instanz, die eine Kopie der Instanz erstellt. -
Eine
Temporal.PlainDateTime-Instanz, die das Kalenderdatum auf die gleiche Weise bereitstellt wieTemporal.PlainDateTime.prototype.toPlainDate(). -
Eine
Temporal.ZonedDateTime-Instanz, die das Kalenderdatum auf die gleiche Weise bereitstellt wieTemporal.ZonedDateTime.prototype.toPlainDate(). -
Ein RFC 9557 String, der ein Datum und optional einen Kalender enthält.
-
Ein Objekt mit den folgenden Eigenschaften (in der Reihenfolge, in der sie abgerufen und validiert werden):
calendarOptional-
Ein String, der der
calendarId-Eigenschaft entspricht. SieheIntl.supportedValuesOf()für eine Liste der häufig unterstützten Kalendertypen. Standardmäßig"iso8601". Alle anderen Eigenschaften werden in diesem Kalendersystem interpretiert (im Gegensatz zumTemporal.PlainDate()-Konstruktor, der die Werte im ISO-Kalendersystem interpretiert). day-
Ein Ganzzahl, die der
day-Eigenschaft entspricht. Muss positiv sein, unabhängig von deroverflow-Option. eraunderaYear-
Ein String und ein Ganzzahl, die den
era- underaYear-Eigenschaften entsprechen. Sie werden nur verwendet, wenn das Kalendersystem Epochen hat.eraunderaYearmüssen gleichzeitig bereitgestellt werden. Mindestens einer voneraYear(zusammen mitera) oderyearmuss bereitgestellt werden. Wenn alleera,eraYearundyearangegeben sind, müssen sie konsistent sein. month-
Entspricht der
month-Eigenschaft. Muss positiv sein, unabhängig von deroverflow-Option. Mindestens einer vonmonthodermonthCodemuss bereitgestellt werden. Wenn sowohlmonthals auchmonthCodeangegeben sind, müssen diese konsistent sein. monthCode-
Entspricht der
monthCode-Eigenschaft. Mindestens einer vonmonthodermonthCodemuss bereitgestellt werden. Wenn sowohlmonthals auchmonthCodeangegeben sind, müssen diese konsistent sein. year-
Entspricht der
year-Eigenschaft. Mindestens einer voneraYear(zusammen mitera) oderyearmuss bereitgestellt werden. Wenn alleera,eraYearundyearangegeben sind, müssen sie konsistent sein.
Die Info sollte explizit ein Jahr (als
yearodereraunderaYear), einen Monat (alsmonthodermonthCode) und einen Tag angeben.
-
optionsOptional-
Ein Objekt mit der folgenden Eigenschaft:
overflowOptional-
Ein String, der das Verhalten angibt, wenn eine Datumskomponente außerhalb des gültigen Bereichs liegt (bei Verwendung des Objekts
info). Mögliche Werte sind:"constrain"(Standard)-
Die Datumskomponente wird auf den gültigen Bereich beschränkt.
"reject"-
Ein
RangeErrorwird ausgelöst, wenn die Datumskomponente außerhalb des gültigen Bereichs liegt.
Rückgabewert
Ein neues Temporal.PlainDate-Objekt, das das von info im spezifizierten calendar angegebene Datum darstellt.
Ausnahmen
TypeError-
Wird in einem der folgenden Fälle ausgelöst:
infoist kein Objekt oder String.optionsist kein Objekt oderundefined.- Die bereitgestellten Eigenschaften reichen nicht aus, um ein Datum eindeutig zu bestimmen. In der Regel müssen Sie ein
year(odereraunderaYear), einenmonth(odermonthCode) und einendayangeben.
RangeError-
Wird in einem der folgenden Fälle ausgelöst:
- Die bereitgestellten Eigenschaften, die die gleiche Komponente spezifizieren, sind inkonsistent.
- Die bereitgestellten nicht-numerischen Eigenschaften sind nicht gültig; zum Beispiel, wenn
monthCodein diesem Kalender niemals ein gültiger Monatscode ist. - Die bereitgestellten numerischen Eigenschaften liegen außerhalb des Bereichs und
options.overflowist auf"reject"gesetzt. - Die Info liegt nicht im darstellbaren Bereich, der ±(108 + 1) Tage oder etwa ±273,972.6 Jahre ab der Unix-Epoche umfasst.
Beispiele
>Erstellen eines PlainDate aus einem Objekt
// Year, month, and day
const d1 = Temporal.PlainDate.from({ year: 2021, month: 7, day: 1 });
console.log(d1.toString()); // "2021-07-01"
// Year, month code, and day
const d2 = Temporal.PlainDate.from({ year: 2021, monthCode: "M07", day: 1 });
console.log(d2.toString()); // "2021-07-01"
// Year, month, day in a different calendar
const d3 = Temporal.PlainDate.from({
year: 2021,
month: 7,
day: 1,
calendar: "hebrew",
});
// Note: when you construct a date with an object, the date components
// are in *that* calendar, not the ISO calendar. However, toString() always
// outputs the date in the ISO calendar. For example, the year "2021" in
// the Hebrew calendar is actually 1740 BCE in the ISO calendar.
console.log(d3.toString()); // "-001739-03-07[u-ca=hebrew]"
// Era, eraYear, month, and day
const d4 = Temporal.PlainDate.from({
era: "meiji",
eraYear: 4,
month: 7,
day: 1,
calendar: "japanese",
});
console.log(d4.toString()); // "1871-07-01[u-ca=japanese]"
Steuerung des Überlaufverhaltens
Standardmäßig werden Werte außerhalb des gültigen Bereichs auf den gültigen Bereich beschränkt:
const d1 = Temporal.PlainDate.from({ year: 2021, month: 13, day: 1 });
console.log(d1.toString()); // "2021-12-01"
const d2 = Temporal.PlainDate.from({ year: 2021, month: 2, day: 29 });
console.log(d2.toString()); // "2021-02-28"
const d3 = Temporal.PlainDate.from("2021-02-29");
console.log(d3.toString()); // "2021-02-28"
Sie können dieses Verhalten so ändern, dass stattdessen ein Fehler ausgelöst wird:
const d3 = Temporal.PlainDate.from(
{ year: 2021, month: 13, day: 1 },
{ overflow: "reject" },
);
// RangeError: date value "month" not in 1..12: 13
Erstellen eines PlainDate aus einem String
const d = Temporal.PlainDate.from("2021-07-01");
console.log(d.toLocaleString("en-US", { dateStyle: "full" }));
// Thursday, July 1, 2021
// Providing a calendar
const d2 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
console.log(
d2.toLocaleString("ja-JP", { calendar: "japanese", dateStyle: "full" }),
);
// 令和3年7月1日木曜日
// Providing a time and an offset (ignored)
const d3 = Temporal.PlainDate.from("2021-07-01T00:00+08:00");
console.log(d3.toString()); // "2021-07-01"
Erstellen eines PlainDate aus einer anderen Temporal-Instanz
const dt = Temporal.PlainDateTime.from("2021-07-01T12:00");
const d = Temporal.PlainDate.from(dt);
console.log(d.toString()); // "2021-07-01"
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T00:00+08:00[Asia/Shanghai]",
);
const d2 = Temporal.PlainDate.from(zdt);
console.log(d2.toString()); // "2021-07-01"
const d3 = Temporal.PlainDate.from(d);
console.log(d3.toString()); // "2021-07-01"
Spezifikationen
| Spezifikation |
|---|
| Temporal> # sec-temporal.plaindate.from> |