Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Temporal.PlainMonthDay

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Das Temporal.PlainMonthDay-Objekt repräsentiert Monat und Tag eines Kalenderdatums ohne Jahr oder Zeitzone; beispielsweise ein Ereignis in einem Kalender, das jedes Jahr wiederkehrt und den ganzen Tag stattfindet. Es wird grundsätzlich als ISO-8601-Kalenderdatum mit Feldern für Jahr, Monat und Tag sowie einem zugeordneten Kalendersystem repräsentiert. Das Jahr wird verwendet, um Monat und Tag in Nicht-ISO-Kalendersystemen eindeutig zu bestimmen.

Beschreibung

Ein PlainMonthDay ist im Wesentlichen der Monat-Tag-Teil eines Temporal.PlainDate-Objekts ohne das Jahr. Da sich die Bedeutung eines Monats-Tags von Jahr zu Jahr ändern kann (beispielsweise ob er existiert oder welches der Monat-Tag des nächsten Tages ist), bietet dieses Objekt allein nicht viel Funktionalität, etwa Vergleich, Addition oder Subtraktion. Es besitzt nicht einmal eine month-Eigenschaft, da der Monatsindex ohne ein Jahr nicht aussagekräftig ist (beispielsweise können zwei Monate aus zwei Jahren mit demselben Index bei Schaltmonaten unterschiedliche Namen haben).

RFC-9557-Format

PlainMonthDay-Objekte können mithilfe des RFC-9557-Formats serialisiert und geparst werden, einer Erweiterung des Formats ISO 8601 / RFC 3339. Die Zeichenfolge hat die folgende Form (Leerzeichen dienen nur der Lesbarkeit und dürfen in der tatsächlichen Zeichenfolge nicht vorhanden sein):

YYYY-MM-DD [u-ca=calendar_id]
YYYY Optional

Entweder eine vierstellige Zahl oder eine sechsstellige Zahl mit einem +- oder --Vorzeichen. Sie ist für Nicht-ISO-Kalender erforderlich und ansonsten optional. Wenn sie weggelassen wird, können Sie entweder YYYY- durch -- ersetzen (sodass die Zeichenfolge wie --MM-DD oder --MMDD aussieht) oder den Teil YYYY- vollständig weglassen (sodass die Zeichenfolge wie MM-DD oder MMDD aussieht). Beachten Sie, dass das tatsächlich gespeicherte Referenzjahr vom angegebenen Jahr abweichen kann, der repräsentierte Monat-Tag jedoch derselbe ist. Weitere Informationen finden Sie unter Temporal.PlainMonthDay.from().

MM

Eine zweistellige Zahl von 01 bis 12.

DD

Eine zweistellige Zahl von 01 bis 31. Die Komponenten YYYY, MM und DD können durch - oder gar nicht getrennt werden.

[u-ca=calendar_id] Optional

Ersetzen Sie calendar_id durch den zu verwendenden Kalender. Eine Liste häufig unterstützter Kalendertypen finden Sie unter Intl.supportedValuesOf(). Standardmäßig wird [u-ca=iso8601] verwendet. Kann durch Voranstellen von ! vor dem Schlüssel ein kritisches Flag haben: beispielsweise [!u-ca=iso8601]. Dieses Flag teilt anderen Systemen im Allgemeinen mit, dass es nicht ignoriert werden kann, wenn sie es nicht unterstützen. Der Temporal-Parser löst einen Fehler aus, wenn die Annotationen zwei oder mehr Kalenderannotation enthalten und eine davon kritisch ist. Beachten Sie, dass YYYY-MM-DD immer als ISO-8601-Kalenderdatum interpretiert und anschließend in den angegebenen Kalender konvertiert wird.

Als Eingabe können Sie optional die Uhrzeit, den Offset und den Zeitzonenbezeichner im selben Format wie bei PlainDateTime angeben, sie werden jedoch ignoriert. Andere Annotationen im Format [key=value] werden ebenfalls ignoriert und dürfen nicht das kritische Flag besitzen.

Bei der Serialisierung können Sie festlegen, ob die Kalender-ID angezeigt werden soll und ob dafür ein kritisches Flag hinzugefügt werden soll.

Konstruktor

Temporal.PlainMonthDay()

Erstellt ein neues Temporal.PlainMonthDay-Objekt durch direkte Angabe der zugrunde liegenden Daten.

Statische Methoden

Temporal.PlainMonthDay.from()

Erstellt ein neues Temporal.PlainMonthDay-Objekt aus einem anderen Temporal.PlainMonthDay-Objekt, einem Objekt mit Monats- und Tageigenschaften oder einer RFC-9557-Zeichenfolge.

Instanzeigenschaften

Diese Eigenschaften sind auf Temporal.PlainMonthDay.prototype definiert und werden von allen Temporal.PlainMonthDay-Instanzen gemeinsam verwendet.

Temporal.PlainMonthDay.prototype.calendarId

Gibt eine Zeichenfolge zurück, die den Kalender repräsentiert, der zur Interpretation des internen ISO-8601-Datums verwendet wird.

Temporal.PlainMonthDay.prototype.constructor

Die Konstruktorfunktion, welche das Instanzobjekt erstellt hat. Für Temporal.PlainMonthDay-Instanzen ist der Anfangswert der Konstruktor Temporal.PlainMonthDay().

Temporal.PlainMonthDay.prototype.day

Gibt eine positive ganze Zahl zurück, welche den bei 1 beginnenden Tagesindex im Monat dieses Datums repräsentiert; dies ist dieselbe Tagesnummer, die Sie in einem Kalender sehen würden. Abhängig vom Kalender. Beginnt im Allgemeinen bei 1 und ist fortlaufend, aber nicht immer.

Temporal.PlainMonthDay.prototype.monthCode

Gibt eine kalenderspezifische Zeichenfolge zurück, die den Monat dieses Datums repräsentiert. Abhängig vom Kalender. Üblicherweise ist dies M plus eine zweistellige Monatsnummer. Bei Schaltmonaten besteht sie aus dem Code des vorherigen Monats, gefolgt von L. Wenn der Schaltmonat der erste Monat des Jahres ist, lautet der Code M00L.

Temporal.PlainMonthDay.prototype[Symbol.toStringTag]

Der Anfangswert der Eigenschaft [Symbol.toStringTag] ist die Zeichenfolge "Temporal.PlainMonthDay". Diese Eigenschaft wird in Object.prototype.toString() verwendet.

Instanzmethoden

Temporal.PlainMonthDay.prototype.equals()

Gibt true zurück, wenn dieser Monat-Tag wertmäßig einem anderen Monat-Tag entspricht (in einer durch Temporal.PlainMonthDay.from() konvertierbaren Form), andernfalls false. Sie werden sowohl anhand ihrer Datumswerte als auch ihrer Kalender verglichen.

Temporal.PlainMonthDay.prototype.toJSON()

Gibt eine Zeichenfolge zurück, die diesen Monat-Tag im selben RFC-9557-Format repräsentiert wie ein Aufruf von toString(). Ist für den impliziten Aufruf durch JSON.stringify() vorgesehen.

Temporal.PlainMonthDay.prototype.toLocaleString()

Gibt eine Zeichenfolge mit einer sprachabhängigen Darstellung dieses Monats-Tags zurück.

Temporal.PlainMonthDay.prototype.toPlainDate()

Gibt ein neues Temporal.PlainDate-Objekt zurück, das diesen Monat-Tag und ein angegebenes Jahr im selben Kalendersystem repräsentiert.

Temporal.PlainMonthDay.prototype.toString()

Gibt eine Zeichenfolge zurück, die diesen Monat-Tag im RFC-9557-Format repräsentiert.

Temporal.PlainMonthDay.prototype.valueOf()

Löst einen TypeError aus, wodurch verhindert wird, dass Temporal.PlainMonthDay-Instanzen bei der Verwendung in arithmetischen Operationen oder Vergleichsoperationen implizit in Primitive konvertiert werden.

Temporal.PlainMonthDay.prototype.with()

Gibt ein neues Temporal.PlainMonthDay-Objekt zurück, das diesen Monat-Tag repräsentiert, wobei einige Felder durch neue Werte ersetzt wurden.

Beispiele

Das nächste Auftreten eines Festivals ermitteln

js
// Chinese New Years are on 1/1 in the Chinese calendar
const chineseNewYear = Temporal.PlainMonthDay.from({
  monthCode: "M01",
  day: 1,
  calendar: "chinese",
});
const currentYear = Temporal.Now.plainDateISO().withCalendar("chinese").year;
let nextCNY = chineseNewYear.toPlainDate({ year: currentYear });
if (Temporal.PlainDate.compare(nextCNY, Temporal.Now.plainDateISO()) <= 0) {
  nextCNY = nextCNY.add({ years: 1 });
}
console.log(
  `The next Chinese New Year is on ${nextCNY.withCalendar("iso8601").toLocaleString()}`,
);

Spezifikationen

Spezifikation
Temporal
# sec-temporal-plainmonthday-objects

Browser-Kompatibilität

Siehe auch