Temporal.PlainDate.from()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die Temporal.PlainDate.from() statische Methode erstellt ein neues Temporal.PlainDate Objekt aus einem anderen Temporal.PlainDate Objekt, einem Objekt mit Datumsangaben oder einem RFC 9557 String.
Syntax
Temporal.PlainDate.from(info)
Temporal.PlainDate.from(info, options)
Parameter
info-
Einer der folgenden:
-
Eine
Temporal.PlainDateInstanz, die eine Kopie der Instanz erstellt. -
Eine
Temporal.PlainDateTimeInstanz, die das Kalenderdatum auf die gleiche Weise bereitstellt wieTemporal.PlainDateTime.prototype.toPlainDate(). -
Eine
Temporal.ZonedDateTimeInstanz, 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
calendarIdEigenschaft entspricht. SieheIntl.supportedValuesOf()für eine Liste allgemeingültiger 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-
Eine ganze Zahl, die der
dayEigenschaft entspricht. Muss unabhängig von deroverflowOption positiv sein. eraunderaYear-
Ein String und eine ganze Zahl, die den
eraunderaYearEigenschaften entsprechen. Werden nur verwendet, wenn das Kalendersystem Ären hat.eraunderaYearmüssen gleichzeitig angegeben werden. Mindestens eine voneraYear(zusammen mitera) oderyearmuss angegeben werden. Wennera,eraYearundyearalle angegeben sind, müssen sie konsistent sein. month-
Entspricht der
monthEigenschaft. Muss unabhängig von deroverflowOption positiv sein. Mindestens eine vonmonthodermonthCodemuss angegeben werden. Wenn sowohlmonthals auchmonthCodeangegeben sind, müssen sie konsistent sein. monthCode-
Entspricht der
monthCodeEigenschaft. Mindestens eine vonmonthodermonthCodemuss angegeben werden. Wenn sowohlmonthals auchmonthCodeangegeben sind, müssen sie konsistent sein. year-
Entspricht der
yearEigenschaft. Mindestens eine voneraYear(zusammen mitera) oderyearmuss angegeben werden. Wennera,eraYearundyearalle angegeben sind, müssen sie konsistent sein.
Die Angaben sollten ausdrücklich ein Jahr (als
yearodereraunderaYear), einen Monat (alsmonthodermonthCode) und einen Tag spezifizieren.
-
optionsOptional-
Ein Objekt mit der folgenden Eigenschaft:
overflowOptional-
Ein String, der das Verhalten angibt, wenn ein Datumskomponente außerhalb des Bereichs liegt (bei Verwendung des Objekt
info). Mögliche Werte sind:"constrain"(Standard)-
Die Datumskomponente wird auf den gültigen Bereich begrenzt.
"reject"-
Ein
RangeErrorwird ausgelöst, wenn die Datumskomponente außerhalb des Bereichs liegt.
Rückgabewert
Ein neues Temporal.PlainDate Objekt, das das durch info im angegebenen calendar spezifizierte Datum darstellt.
Ausnahmen
TypeError-
Wird in einem der folgenden Fälle ausgelöst:
infoist kein Objekt oder String.optionsist kein Objekt oderundefined.- Die angegebenen Eigenschaften sind unzureichend, um ein Datum eindeutig zu bestimmen. Normalerweise müssen Sie ein
year(odereraunderaYear), einenmonth(odermonthCode) und einendayangeben.
RangeError-
Wird in einem der folgenden Fälle ausgelöst:
- Die angegebenen Eigenschaften, die dieselbe Komponente spezifizieren, sind inkonsistent.
- Die angegebenen nicht-numerischen Eigenschaften sind ungültig; zum Beispiel, wenn
monthCodeniemals ein gültiger Monatscode in diesem Kalender ist. - Die angegebenen numerischen Eigenschaften liegen außerhalb des Bereichs, und
options.overflowist auf"reject"gesetzt. - Die Angaben sind 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: "chinese",
});
// 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 Chinese calendar is actually 616 BC in the ISO calendar.
console.log(d3.toString()); // "-000616-08-12[u-ca=chinese]"
// 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, die außerhalb des Bereichs liegen, auf den gültigen Bereich begrenzt:
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 ändern, um stattdessen einen Fehler auszulösen:
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
| Specification |
|---|
| Temporal> # sec-temporal.plaindate.from> |