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]
YYYYOptional-
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 SieYYYY-entweder durch--ersetzen (so dass der String wie--MM-DDoder--MMDDaussieht) oder denYYYY--Teil ganz weglassen (so dass der String wieMM-DDoderMMDDaussieht). 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 unterTemporal.PlainMonthDay.from(). MM-
Eine zweistellige Zahl von
01bis12. DD-
Eine zweistellige Zahl von
01bis31. DieYYYY,MMundDDKomponenten können durch-oder nichts getrennt werden. [u-ca=calendar_id]Optional-
Ersetzen Sie
calendar_iddurch den zu verwendenden Kalender. SieheIntl.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. DerTemporal-Parser wird einen Fehler auslösen, wenn die Anmerkungen zwei oder mehr Kalenderanmerkungen enthalten und eine davon kritisch ist. Beachten Sie, dass dasYYYY-MM-DDimmer 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 anderenTemporal.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 derTemporal.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
Mplus einer zweistelligen Monatszahl. Bei Schaltmonaten ist es der Code des vorherigen Monats gefolgt vonL. Wenn der Schaltmonat der erste Monat des Jahres ist, ist der CodeM00L. Temporal.PlainMonthDay.prototype[Symbol.toStringTag]-
Der Anfangswert der
[Symbol.toStringTag]-Eigenschaft ist der String"Temporal.PlainMonthDay". Diese Eigenschaft wird inObject.prototype.toString()verwendet.
Instanzmethoden
Temporal.PlainMonthDay.prototype.equals()-
Gibt
truezurück, wenn dieser Monat-Tag im Wert einem anderen Monat-Tag entspricht (in einer Form, die durchTemporal.PlainMonthDay.from()konvertierbar ist), undfalsesonst. 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 durchJSON.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, dassTemporal.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
// 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> |