Temporal.PlainMonthDay()

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.PlainMonthDay() Konstruktor erzeugt Temporal.PlainMonthDay 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 normalerweise Temporal.PlainMonthDay Objekte mit der Temporal.PlainMonthDay.from() statischen Methode konstruieren, die eine Vielzahl von Eingabedatentypen verarbeiten kann.

Syntax

js
new Temporal.PlainMonthDay(month, day)
new Temporal.PlainMonthDay(month, day, calendar)
new Temporal.PlainMonthDay(month, day, calendar, referenceYear)

Hinweis: Temporal.PlainMonthDay() kann nur mit new konstruiert werden. Der Versuch, es ohne new aufzurufen, wirft einen TypeError.

Warnung: Vermeiden Sie die Verwendung der Parameter calendar und referenceYear, da equals() das Referenzjahr zur Gleichheitsprüfung heranziehen wird, wodurch zwei äquivalente Monat-Tage als unterschiedlich angesehen werden, wenn sie unterschiedliche Referenzjahre haben. Um ein Temporal.PlainMonthDay Objekt mit einem nicht-ISO-Kalender zu erstellen, verwenden Sie die Temporal.PlainMonthDay.from() statische Methode.

Parameter

month

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

day

Eine Zahl, auf eine ganze Zahl gekürzt, die den Tag des Monats im ISO-Kalendersystem darstellt.

calendar Optional

Ein String, der den Kalender angibt, der verwendet werden soll. Beachten Sie, dass unabhängig vom calendar, referenceYear, month und day im ISO 8601-Kalendersystem sein müssen. Standardmäßig "iso8601".

referenceYear Optional

Eine Zahl, auf eine ganze Zahl gekürzt, die das Jahr im ISO-Kalendersystem darstellt. Standardmäßig 1972. Derselbe ISO-Monatstag kann in verschiedenen Jahren mit nicht-ISO-Kalendern unterschiedliche Daten darstellen. Zum Beispiel können die Tage 2021-07-01 und 1972-07-01 in einem nicht-gregorianischen Kalender auf unterschiedliche Monatstage fallen, und nur "07-01" anzugeben, reicht nicht aus, um einen Monatstag im Zielkalender eindeutig zu bestimmen. Daher möchten Sie nahezu immer ein referenceYear angeben, wenn Sie einen nicht-ISO-Kalender verwenden.

Rückgabewert

Ein neues Temporal.PlainMonthDay Objekt, das den Monat-Tag des durch referenceYear, month, day (im ISO-Kalender) angegebenen Datums repräsentiert und im durch calendar angegebenen Kalendersystem interpretiert wird.

Ausnahmen

TypeError

Wird geworfen, wenn calendar kein String oder undefined ist.

RangeError

Wird in einem der folgenden Fälle geworfen:

  • referenceYear, month oder day ist keine endliche Zahl.
  • Die Kombination aus referenceYear, month und day stellt kein gültiges Datum im ISO-Kalendersystem dar oder liegt nicht im darstellbaren Bereich, welcher ±(108 + 1) Tage, oder etwa ±273,972.6 Jahre, vom Unix-Epoch ist.
  • calendar ist kein gültiger Kalenderidentifikator.

Beispiele

Verwendung von Temporal.PlainMonthDay()

js
const md = new Temporal.PlainMonthDay(7, 1);
console.log(md.toString()); // 07-01

const md2 = new Temporal.PlainMonthDay(7, 1, "chinese");
console.log(md2.toString()); // 1972-07-01[u-ca=chinese]

const md3 = new Temporal.PlainMonthDay(7, 1, "chinese", 2021);
console.log(md3.toString()); // 2021-07-01[u-ca=chinese]

Ungeeignete Verwendung

Sie sollten die Parameter calendar und referenceYear vermeiden, es sei denn, Sie wissen, dass das referenceYear das kanonische Referenzjahr ist, das von Temporal.PlainMonthDay.from() für denselben Monat-Tag ausgewählt würde.

js
const md = new Temporal.PlainMonthDay(7, 1, "chinese", 2021);
const md2 = Temporal.PlainMonthDay.from("2021-07-01[u-ca=chinese]");
console.log(md.equals(md2)); // false
console.log(md.toString()); // 2021-07-01[u-ca=chinese]
console.log(md2.toString()); // 1972-07-02[u-ca=chinese]

Spezifikationen

Specification
Temporal proposal
# sec-temporal-plainmonthday-constructor

Browser-Kompatibilität

Siehe auch