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]
YYYYOptional-
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 entwederYYYY-durch--ersetzen (sodass die Zeichenfolge wie--MM-DDoder--MMDDaussieht) oder den TeilYYYY-vollständig weglassen (sodass die Zeichenfolge wieMM-DDoderMMDDaussieht). 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 unterTemporal.PlainMonthDay.from(). MM-
Eine zweistellige Zahl von
01bis12. DD-
Eine zweistellige Zahl von
01bis31. Die KomponentenYYYY,MMundDDkönnen durch-oder gar nicht getrennt werden. [u-ca=calendar_id]Optional-
Ersetzen Sie
calendar_iddurch den zu verwendenden Kalender. Eine Liste häufig unterstützter Kalendertypen finden Sie unterIntl.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. DerTemporal-Parser löst einen Fehler aus, wenn die Annotationen zwei oder mehr Kalenderannotation enthalten und eine davon kritisch ist. Beachten Sie, dassYYYY-MM-DDimmer 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 anderenTemporal.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 KonstruktorTemporal.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
Mplus eine zweistellige Monatsnummer. Bei Schaltmonaten besteht sie aus dem Code des vorherigen Monats, gefolgt vonL. Wenn der Schaltmonat der erste Monat des Jahres ist, lautet der CodeM00L. Temporal.PlainMonthDay.prototype[Symbol.toStringTag]-
Der Anfangswert der Eigenschaft
[Symbol.toStringTag]ist die Zeichenfolge"Temporal.PlainMonthDay". Diese Eigenschaft wird inObject.prototype.toString()verwendet.
Instanzmethoden
Temporal.PlainMonthDay.prototype.equals()-
Gibt
truezurück, wenn dieser Monat-Tag wertmäßig einem anderen Monat-Tag entspricht (in einer durchTemporal.PlainMonthDay.from()konvertierbaren Form), andernfallsfalse. 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 durchJSON.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
TypeErroraus, wodurch verhindert wird, dassTemporal.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
// 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> |