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

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Das Temporal.PlainMonthDay-Objekt repräsentiert den Monat und Tag eines Kalenderdatums ohne Jahr oder Zeitzone; zum Beispiel ein Ereignis in einem Kalender, das jedes Jahr wiederkehrt und den ganzen Tag über stattfindet. Es wird im Wesentlichen als ein ISO 8601-Kalenderdatum dargestellt, mit Feldern für Jahr, Monat und Tag, und einem zugehörigen Kalendersystem. Das Jahr wird verwendet, um in Nicht-ISO-Kalendersystemen den Monat-Tag zu unterscheiden.

Beschreibung

Ein PlainMonthDay ist im Wesentlichen der Monat-Tag-Teil eines Temporal.PlainDate-Objekts, ohne das Jahr. Da die Bedeutung eines Monat-Tages von Jahr zu Jahr variieren kann (zum Beispiel, ob er existiert oder was der Monat-Tag des folgenden Tages ist), bietet dieses Objekt allein nur wenig Funktionalität, wie Vergleich, Addition oder Subtraktion. Es hat nicht einmal eine month-Eigenschaft, da der Monatsindex ohne ein Jahr nicht aussagekräftig ist (zum Beispiel können zwei Monate aus zwei Jahren mit demselben Index unterschiedliche Namen haben im Fall von Schaltmonaten).

RFC 9557-Format

PlainMonthDay-Objekte können unter Verwendung des RFC 9557-Formats serialisiert und geparst werden, einer Erweiterung des ISO 8601 / RFC 3339-Formats. Der String hat die folgende Form (Leerzeichen sind nur zur Lesbarkeit und sollten im tatsächlichen String nicht vorhanden sein):

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

Entweder eine vierstellige Zahl oder eine sechsstellige Zahl mit einem + oder - Zeichen. Es ist erforderlich für Nicht-ISO-Kalender und ansonsten optional. Falls weggelassen, können Sie YYYY- entweder durch -- ersetzen (so dass der String wie --MM-DD oder --MMDD aussieht) oder den YYYY--Teil ganz weglassen (so dass der String wie MM-DD oder MMDD aussieht). Beachten Sie, dass das tatsächlich gespeicherte Referenzjahr von dem abweichen kann, das Sie angeben, aber der dargestellte Monat-Tag ist derselbe. 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 YYYY, MM und DD Komponenten können durch - oder nichts getrennt werden.

[u-ca=calendar_id] Optional

Ersetzen Sie calendar_id durch den zu verwendenden Kalender. Siehe Intl.supportedValuesOf() für eine Liste von allgemein unterstützten Kalenderarten. Standardmäßig [u-ca=iso8601]. Kann eine kritisches Flag haben, indem der Schlüssel mit ! vorangestellt wird: z.B., [!u-ca=iso8601]. Dieses Flag zeigt im Allgemeinen anderen Systemen an, dass es nicht ignoriert werden kann, wenn sie es nicht unterstützen. Der Temporal-Parser wird einen Fehler auslösen, wenn die Anmerkungen zwei oder mehr Kalenderanmerkungen enthalten und eine davon kritisch ist. Beachten Sie, dass das YYYY-MM-DD immer als ein ISO 8601-Kalenderdatum interpretiert und dann zum angegebenen Kalender konvertiert wird.

Als Eingabe können Sie optional die Zeit, den Offset und die Zeitzonenkennung im selben Format wie PlainDateTime angeben, aber sie werden ignoriert. Andere Anmerkungen im [key=value]-Format werden ebenfalls ignoriert und dürfen nicht das kritische Flag haben.

Beim Serialisieren können Sie konfigurieren, ob die Kalender-ID angezeigt werden soll und ob ein kritisches Flag dafür hinzugefügt werden soll.

Konstruktor

Temporal.PlainMonthDay() Experimentell

Erzeugt ein neues Temporal.PlainMonthDay-Objekt, indem die zugrunde liegenden Daten direkt bereitgestellt werden.

Statische Methoden

Temporal.PlainMonthDay.from()

Erzeugt ein neues Temporal.PlainMonthDay-Objekt aus einem anderen Temporal.PlainMonthDay-Objekt, einem Objekt mit Monats- und Tageigenschaften oder einem RFC 9557-String.

Instanzeigenschaften

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

Temporal.PlainMonthDay.prototype.calendarId

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

Temporal.PlainMonthDay.prototype.constructor

Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Bei Temporal.PlainMonthDay-Instanzen ist der Anfangswert der Temporal.PlainMonthDay()-Konstruktor.

Temporal.PlainMonthDay.prototype.day

Gibt eine positive Ganzzahl zurück, die den auf 1 basierenden Tagesindex im Monat dieses Datums darstellt, derselbe Tag, den Sie auf einem Kalender sehen würden. Kalender-abhängig. Beginnt im Allgemeinen bei 1 und ist kontinuierlich, aber nicht immer.

Temporal.PlainMonthDay.prototype.monthCode

Gibt einen kalenderspezifischen String zurück, der den Monat dieses Datums darstellt. Kalender-abhängig. In der Regel ist es M plus einer zweistelligen Monatszahl. Bei Schaltmonaten ist es der Code des vorherigen Monats gefolgt von L. Wenn der Schaltmonat der erste Monat des Jahres ist, ist der Code M00L.

Temporal.PlainMonthDay.prototype[Symbol.toStringTag]

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

Instanzmethoden

Temporal.PlainMonthDay.prototype.equals()

Gibt true zurück, wenn dieser Monat-Tag im Wert einem anderen Monat-Tag entspricht (in einer Form, die durch Temporal.PlainMonthDay.from() konvertierbar ist), und false sonst. Sie werden sowohl durch ihre Datumswerte als auch durch ihre Kalender verglichen.

Temporal.PlainMonthDay.prototype.toJSON()

Gibt einen String zurück, der diesen Monat-Tag im selben RFC 9557-Format repräsentiert wie ein Aufruf von toString(). Soll implizit durch JSON.stringify() aufgerufen werden.

Temporal.PlainMonthDay.prototype.toLocaleString()

Gibt einen String mit einer sprachensensitiven Darstellung dieses Monat-Tages 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 darstellt.

Temporal.PlainMonthDay.prototype.toString()

Gibt einen String zurück, der diesen Monat-Tag im RFC 9557-Format repräsentiert.

Temporal.PlainMonthDay.prototype.valueOf()

Wirft einen TypeError, der verhindert, dass Temporal.PlainMonthDay-Instanzen implizit in primitive Werte umgewandelt werden, wenn sie in arithmetischen oder Vergleichsoperationen verwendet werden.

Temporal.PlainMonthDay.prototype.with()

Gibt ein neues Temporal.PlainMonthDay-Objekt zurück, das diesen Monat-Tag mit einigen durch neue Werte ersetzten Feldern darstellt.

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

Specification
Temporal
# sec-temporal-plainmonthday-objects

Browser-Kompatibilität

Siehe auch