Temporal.PlainDate.from()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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
| Specification |
|---|
| Temporal> # sec-temporal.plaindate.from> |