Temporal.PlainDate.from()
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 Temporal.PlainDate.from()
statische Methode erstellt ein neues Temporal.PlainDate
Objekt aus einem anderen Temporal.PlainDate
Objekt, einem Objekt mit Datumeigenschaften oder einem RFC 9557 Zeichenkette.
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 in derselben Weise bereitstellt wieTemporal.PlainDateTime.prototype.toPlainDate()
. -
Eine
Temporal.ZonedDateTime
Instanz, die das Kalenderdatum in derselben Weise bereitstellt wieTemporal.ZonedDateTime.prototype.toPlainDate()
. -
Eine RFC 9557 Zeichenkette mit einem Datum und optional einem Kalender.
-
Ein Objekt mit den folgenden Eigenschaften (in der Reihenfolge, in der sie abgerufen und validiert werden):
calendar
Optional-
Ein String, der der
calendarId
Eigenschaft entspricht. SieheIntl.supportedValuesOf()
für eine Liste der häufig unterstützten Kalendertypen. Standardwert ist"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
day
Eigenschaft entspricht. Muss positiv sein, unabhängig von deroverflow
Option. era
underaYear
-
Ein String und eine ganze Zahl, die den
era
underaYear
Eigenschaften entsprechen. Werden nur verwendet, wenn das Kalendersystem Epochen hat.era
underaYear
müssen gleichzeitig angegeben werden. Mindestens eine dereraYear
(zusammen mitera
) oderyear
muss angegeben werden. Wenn alleera
,eraYear
undyear
angegeben sind, müssen sie konsistent sein. month
-
Entspricht der
month
Eigenschaft. Muss positiv sein, unabhängig von deroverflow
Option. Mindestens eine dermonth
odermonthCode
muss angegeben werden. Wenn sowohlmonth
als auchmonthCode
angegeben sind, müssen sie konsistent sein. monthCode
-
Entspricht der
monthCode
Eigenschaft. Mindestens eine dermonth
odermonthCode
muss angegeben werden. Wenn sowohlmonth
als auchmonthCode
angegeben sind, müssen sie konsistent sein. year
-
Entspricht der
year
Eigenschaft. Mindestens eine dereraYear
(zusammen mitera
) oderyear
muss angegeben werden. Wenn alleera
,eraYear
undyear
angegeben sind, müssen sie konsistent sein.
Die Information sollte explizit ein Jahr (als
year
oderera
underaYear
), einen Monat (alsmonth
odermonthCode
) und einen Tag spezifizieren.
-
options
Optional-
Ein Objekt, das die folgende Eigenschaft enthält:
overflow
Optional-
Ein String, der das Verhalten angibt, wenn eine Datumskomponente außerhalb des Bereichs liegt (bei Verwendung des Objekts
info
). 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 Bereichs liegt.
Rückgabewert
Ein neues Temporal.PlainDate
Objekt, das das Datum repräsentiert, das durch info
im angegebenen calendar
festgelegt ist.
Ausnahmen
TypeError
-
Wird in einem der folgenden Fälle ausgelöst:
info
ist kein Objekt oder keine Zeichenkette.options
ist kein Objekt oderundefined
.- Die bereitgestellten Eigenschaften sind unzureichend, um ein Datum eindeutig zu bestimmen. Man muss normalerweise ein
year
(oderera
underaYear
), einenmonth
(odermonthCode
) und einenday
angeben.
RangeError
-
Wird in einem der folgenden Fälle ausgelöst:
- Die bereitgestellten Eigenschaften, die dieselbe Komponente spezifizieren, sind inkonsistent.
- Die bereitgestellten nicht-numerischen Eigenschaften sind nicht gültig; zum Beispiel, wenn
monthCode
niemals ein gültiger Monatscode in diesem Kalendersystem ist. - Die bereitgestellten numerischen Eigenschaften sind außerhalb des Bereichs und
options.overflow
ist auf"reject"
gesetzt. - Die Information 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: "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 außerhalb des Bereichs auf den gültigen Bereich eingegrenzt:
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 einer Zeichenkette
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 |