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 durch direkte Angabe der zugrunde liegenden Daten zu erstellen. Wie bei allen anderen Temporal Klassen, sollten Sie Temporal.PlainYearMonth Objekte normalerweise mit der Temporal.PlainYearMonth.from() statischen Methode erzeugen, die eine Vielzahl von Eingabetypen verarbeiten kann.

Syntax

js
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. Ein Versuch, es ohne new aufzurufen, führt zu einem TypeError.

Warnung: Vermeiden Sie die Verwendung der calendar und referenceDay Parameter, da equals() und compare() den Referenztag für den Vergleich berücksichtigen, was dazu führt, dass zwei äquivalente 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 Ganzzahl gekürzt, die das Jahr im ISO-Kalendersystem darstellt.

month

Eine Zahl, auf eine Ganzzahl gekürzt, die den Monat im ISO-Kalendersystem darstellt.

calendar Optional

Ein String, der den Kalender darstellt, der verwendet werden soll. Beachten Sie, dass unabhängig vom calendar, die year, month und referenceDay Werte im ISO 8601-Kalendersystem sein müssen. Standardmäßig ist es "iso8601".

referenceDay

Eine Zahl, auf eine Ganzzahl gekürzt, die den Tag des Monats im ISO-Kalendersystem darstellt. Standardmäßig 1. Das gleiche ISO Jahr-Monat kann mit nicht-ISO-Kalendern unterschiedliche Monate an verschiedenen Tagen darstellen. Beispielsweise können die Tage 2021-07-01 und 2021-07-31 in einem nicht-gregorianischen Kalender in unterschiedliche Monate fallen, und allein die Angabe "2021-07" reicht nicht aus, um einen Monat im Zielkalender eindeutig zu bestimmen. Daher sollten Sie praktisch immer einen referenceDay 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 angegebenen Datums darstellt (im ISO-Kalender), interpretiert im Kalender-System, das durch calendar spezifiziert ist.

Ausnahmen

TypeError

Wird ausgelöst, wenn calendar kein String oder undefined ist.

RangeError

Wird in einem der folgenden Fälle ausgelöst:

  • year, month oder referenceDay ist keine endliche Zahl.
  • Die Kombination aus year, month und referenceDay stellt kein gültiges Datum im ISO-Kalendersystem dar oder liegt nicht im darstellbaren Bereich, das sind ±(108 + 1) Tage, oder etwa ±273.972,6 Jahre vom Unix-Epoch.
  • calendar ist kein gültiger Kalender-Identifikator.

Beispiele

Verwendung von Temporal.PlainYearMonth()

js
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 calendar und referenceDay Parameter 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.

js
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 proposal
# sec-temporal-plainyearmonth-constructor

Browser-Kompatibilität

Siehe auch