Temporal.PlainYearMonth()
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.
Der Temporal.PlainYearMonth()
Konstruktor erstellt Temporal.PlainYearMonth
Objekte.
Dieser Konstruktor ermöglicht es Ihnen, Instanzen zu erstellen, indem Sie die zugrunde liegenden Daten direkt angeben. Wie bei allen anderen Temporal
Klassen sollten Sie in der Regel Temporal.PlainYearMonth
Objekte mit der Temporal.PlainYearMonth.from()
statischen Methode konstruieren, die eine Vielzahl von Eingabetypen verarbeiten kann.
Syntax
new Temporal.PlainYearMonth(year, month)
new Temporal.PlainYearMonth(year, month, calendar)
new Temporal.PlainYearMonth(year, month, calendar, referenceDay)
Hinweis: Temporal.PlainYearMonth()
kann nur mit new
konstruiert werden. Der Versuch, ihn ohne new
aufzurufen, wirft einen TypeError
.
Warnung:
Vermeiden Sie die Verwendung der Parameter calendar
und referenceDay
, weil equals()
und compare()
den Referenztag für den Vergleich berücksichtigen. Dadurch können zwei gleichwertige Jahr-Monate als unterschiedlich angesehen werden, wenn sie unterschiedliche Referenztage haben. Um ein Temporal.PlainYearMonth
Objekt mit einem nicht-ISO-Kalender zu erstellen, verwenden Sie die Temporal.PlainYearMonth.from()
statische Methode.
Parameter
year
Optional-
Eine Zahl, auf eine ganze Zahl abgerundet, die das Jahr im ISO-Kalendersystem darstellt.
month
-
Eine Zahl, auf eine ganze Zahl abgerundet, die den Monat im ISO-Kalendersystem darstellt.
calendar
Optional-
Ein String, der den zu verwendenden Kalender darstellt. Siehe
Intl.supportedValuesOf()
für eine Liste häufig unterstützter Kalendertypen. Standardwert ist"iso8601"
. Beachten Sie, dass unabhängig vomcalendar
die Angaben füryear
,month
undreferenceDay
im ISO 8601 Kalendersystem sein müssen. referenceDay
-
Eine Zahl, auf eine ganze Zahl abgerundet, die den Tag des Monats im ISO-Kalendersystem darstellt. Standardwert ist
1
. Das gleiche ISO-Jahr-Monat kann in verschiedenen Monaten an verschiedenen Tagen mit nicht-ISO-Kalendern dargestellt werden. Beispielsweise können die Tage 2021-07-01 und 2021-07-31 in einem nicht-gregorianischen Kalender in verschiedenen Monaten liegen, und nur die Angabe "2021-07" reicht nicht aus, um einen Monat im Zielkalender eindeutig zu bestimmen. Daher sollten Sie fast immer einenreferenceDay
angeben, wenn Sie einen nicht-ISO-Kalender verwenden.
Rückgabewert
Ein neues Temporal.PlainYearMonth
Objekt, das das Jahr-Monat des durch year
, month
und referenceDay
(im ISO-Kalender) angegebenen Datums repräsentiert, interpretiert im Kalendersystem, das durch calendar
angegeben wird.
Ausnahmen
TypeError
-
Wird ausgelöst, wenn
calendar
kein String oderundefined
ist. RangeError
-
Wird in einem der folgenden Fälle ausgelöst:
year
,month
oderreferenceDay
ist keine endliche Zahl.- Die Kombination aus
year
,month
undreferenceDay
stellt kein gültiges Datum im ISO-Kalendersystem dar oder liegt nicht im darstellbaren Bereich, der ±(108 + 1) Tage oder etwa ±273.972,6 Jahre ab der Unix-Epoche beträgt. calendar
ist kein gültiger Kalenderbezeichner.
Beispiele
Verwendung von Temporal.PlainYearMonth()
const ym = new Temporal.PlainYearMonth(2021, 7);
console.log(ym.toString()); // 2021-07
const ym2 = new Temporal.PlainYearMonth(2021, 7, "chinese");
console.log(ym2.toString()); // 2021-07-01[u-ca=chinese]
const ym3 = new Temporal.PlainYearMonth(2021, 7, "chinese", 31);
console.log(ym3.toString()); // 2021-07-31[u-ca=chinese]
Unsachgemäße Verwendung
Sie sollten die Verwendung der Parameter calendar
und referenceDay
vermeiden, es sei denn, Sie wissen, dass der referenceDay
der kanonische Referenztag ist, der von Temporal.PlainYearMonth.from()
für das gleiche Jahr-Monat ausgewählt würde.
const ym = new Temporal.PlainYearMonth(2021, 7, "chinese", 1);
const ym2 = Temporal.PlainYearMonth.from("2021-07-01[u-ca=chinese]");
console.log(ym.equals(ym2)); // false
console.log(ym.toString()); // 2021-07-01[u-ca=chinese]
console.log(ym2.toString()); // 2021-06-10[u-ca=chinese]
Spezifikationen
Specification |
---|
Temporal # sec-temporal-plainyearmonth-constructor |