Temporal.PlainDate
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.
Das Temporal.PlainDate
Objekt repräsentiert ein Kalenderdatum (ein Datum ohne Zeit oder Zeitzone); zum Beispiel ein Ereignis in einem Kalender, das den ganzen Tag über stattfindet, unabhängig davon, in welcher Zeitzone es stattfindet. Es wird im Wesentlichen als ISO 8601 Kalenderdatum dargestellt, mit den Feldern Jahr, Monat und Tag sowie einem zugehörigen Kalendersystem.
Beschreibung
Ein PlainDate
ist im Wesentlichen der Datumsanteil eines Temporal.PlainDateTime
Objekts, bei dem die Zeitinformationen entfernt wurden. Da die Datum- und Zeitinformationen nicht viel interagieren, werden alle allgemeinen Informationen über Datumsmerkmale hier dokumentiert.
RFC 9557 Format
PlainDate
Objekte können im RFC 9557 Format serialisiert und analysiert 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
-
Entweder eine vierstellige Zahl oder eine sechsstellige Zahl mit einem
+
oder-
Zeichen. MM
-
Eine zweistellige Zahl von
01
bis12
. DD
-
Eine zweistellige Zahl von
01
bis31
. Die KomponentenYYYY
,MM
undDD
können durch-
oder nichts getrennt werden. [u-ca=calendar_id]
Optional-
Ersetzen Sie
calendar_id
durch den zu verwendenden Kalender. Kann ein 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 diese es nicht unterstützen. DerTemporal
Parser wird einen Fehler auslösen, wenn die Anmerkungen zwei oder mehr Kalenderanmerkungen enthalten und eine davon kritisch ist. Standardmäßig[u-ca=iso8601]
. Beachten Sie, dassYYYY-MM-DD
immer als ISO 8601 Kalenderdatum interpretiert und dann in den angegebenen Kalender umgewandelt wird.
Als Eingabe können Sie optional die Zeit, den Offset und den Zeitzonen-Identifier im gleichen Format wie PlainDateTime
hinzufügen, aber sie werden ignoriert. Andere Anmerkungen im Format [key=value]
werden ebenfalls ignoriert und dürfen das kritische Flag nicht haben.
Beim Serialisieren können Sie konfigurieren, ob die Kalender-ID angezeigt wird und ob ein kritisches Flag hinzugefügt wird.
Ungültige Datumskorrektur
Die Methoden Temporal.PlainDate.from()
, Temporal.PlainDate.prototype.with()
, Temporal.PlainDate.prototype.add()
, Temporal.PlainDate.prototype.subtract()
, und ihre Gegenstücke in anderen Temporal
Objekten erlauben es, Daten mit kalender-spezifischen Eigenschaften zu konstruieren. Die Datumskomponenten können außerhalb des Bereichs liegen. Im ISO-Kalender ist dies immer ein Überlauf, wie ein Monat größer als 12 oder ein Tag größer als die Anzahl der Tage, und eine Korrektur würde nur das Clamping des Wertes auf den maximal erlaubten Wert beinhalten. In anderen Kalendern kann der ungültige Fall komplexer sein. Wenn Sie die Option overflow: "constrain"
verwenden, werden ungültige Daten wie folgt auf ein gültiges Datum festgelegt:
- Wenn der Tag nicht existiert, aber der Monat: wählen Sie den nächstgelegenen Tag im selben Monat. Wenn es zwei gleich nahe liegende Daten in diesem Monat gibt, wählen Sie das spätere.
- Wenn der Monat ein Schaltmonat ist, der im Jahr nicht existiert: wählen Sie ein anderes Datum gemäß den kulturellen Konventionen der Nutzer dieses Kalenders. In der Regel führt dies zu demselben Tag im Monat davor oder danach, wo dieser Monat in einem Schaltjahr normalerweise fallen würde.
- Wenn der Monat aus anderen Gründen nicht im Jahr existiert: wählen Sie das nächste Datum, das noch im selben Jahr liegt. Wenn es zwei gleich nahe liegende Daten in diesem Jahr gibt, wählen Sie das spätere.
- Wenn das gesamte Jahr nicht existiert: wählen Sie das nächste Datum in einem anderen Jahr. Wenn es zwei gleich nahe liegende Daten gibt, wählen Sie das spätere.
Konstruktor
Temporal.PlainDate()
Experimentell-
Erstellt ein neues
Temporal.PlainDate
Objekt durch direkte Bereitstellung der zugrunde liegenden Daten.
Statische Methoden
Temporal.PlainDate.compare()
Experimentell-
Gibt eine Zahl (-1, 0 oder 1) zurück, die angibt, ob das erste Datum vor, gleichzeitig mit oder nach dem zweiten Datum liegt. Entspricht dem Vergleich der Jahr-, Monat- und Tagfelder der zugrunde liegenden ISO 8601-Daten.
Temporal.PlainDate.from()
Experimentell-
Erstellt ein neues
Temporal.PlainDate
Objekt aus einem anderenTemporal.PlainDate
Objekt, einem Objekt mit Datumsangaben oder einem RFC 9557 String.
Instanz-Eigenschaften
Diese Eigenschaften sind auf Temporal.PlainDate.prototype
definiert und werden von allen Temporal.PlainDate
Instanzen geteilt.
Temporal.PlainDate.prototype.calendarId
Experimentell-
Gibt einen String zurück, der den Kalender repräsentiert, der zur Interpretation des internen ISO 8601-Datums verwendet wird.
Temporal.PlainDate.prototype.constructor
-
Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Für
Temporal.PlainDate
Instanzen ist der anfängliche Wert derTemporal.PlainDate()
Konstruktor. Temporal.PlainDate.prototype.day
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tag-Index im Monat dieses Datums repräsentiert, was dieselbe Tagesnummer ist, die Sie auf einem Kalender sehen würden. Kalender-abhängig. Beginnt im Allgemeinen bei 1 und ist kontinuierlich, aber nicht immer.
Temporal.PlainDate.prototype.dayOfWeek
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tag-Index in der Woche dieses Datums repräsentiert. Tage in einer Woche werden fortlaufend von
1
bisdaysInWeek
nummeriert, wobei jede Zahl ihrem Namen zugeordnet ist. Kalender-abhängig. 1 repräsentiert normalerweise Montag im Kalender, auch wenn Lokalisierungen, die den Kalender verwenden, einen anderen Tag als ersten Tag der Woche betrachten können (sieheIntl.Locale.prototype.getWeekInfo()
). Temporal.PlainDate.prototype.dayOfYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tag-Index im Jahr dieses Datums repräsentiert. Der erste Tag dieses Jahres ist
1
und der letzte Tag ist derdaysInYear
. Kalender-abhängig. Temporal.PlainDate.prototype.daysInMonth
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Tage im Monat dieses Datums repräsentiert. Kalender-abhängig.
Temporal.PlainDate.prototype.daysInWeek
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Tage in der Woche dieses Datums repräsentiert. Kalender-abhängig. Für den ISO 8601-Kalender sind dies immer 7, aber in anderen Kalendersystemen kann dies von Woche zu Woche variieren.
Temporal.PlainDate.prototype.daysInYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Tage im Jahr dieses Datums repräsentiert. Kalender-abhängig. Für den ISO 8601-Kalender sind dies 365 oder 366 in einem Schaltjahr.
Temporal.PlainDate.prototype.era
Experimentell-
Gibt einen kalenderspezifischen Kleinbuchstaben-String zurück, der die Ära dieses Datums repräsentiert, oder
undefined
, wenn der Kalender keine Epochen verwendet (z.B. ISO 8601).era
underaYear
identifizieren zusammen ein Jahr in einem Kalender eindeutig, ebenso wieyear
. Kalender-abhängig. Für Gregorian ist es entweder"gregory"
oder"gregory-inverse"
. Temporal.PlainDate.prototype.eraYear
Experimentell-
Gibt eine nicht negative Ganzzahl zurück, die das Jahr dieses Datums innerhalb der Ära repräsentiert, oder
undefined
, wenn der Kalender keine Epochen verwendet (z.B. ISO 8601). Der Jahr-Index beginnt normalerweise bei 1 (häufiger) oder 0, und Jahre in einer Ära können mit der Zeit abnehmen (z.B. Gregorian BCE).era
underaYear
identifizieren zusammen ein Jahr in einem Kalender eindeutig, ebenso wieyear
. Kalender-abhängig. Temporal.PlainDate.prototype.inLeapYear
Experimentell-
Gibt einen booleschen Wert zurück, der angibt, ob dieses Datum in einem Schaltjahr liegt. Ein Schaltjahr ist ein Jahr, das mehr Tage hat (aufgrund eines Schalttages oder Schaltmonats) als ein normales Jahr. Kalender-abhängig.
Temporal.PlainDate.prototype.month
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Monat-Index im Jahr dieses Datums repräsentiert. Der erste Monat dieses Jahres ist
1
und der letzte Monat ist dermonthsInYear
. Kalender-abhängig. Beachten Sie, dass im Gegensatz zuDate.prototype.getMonth()
der Index 1-basiert ist. Wenn der Kalender Schaltmonate hat, kann der Monat mit demselbenmonthCode
in verschiedenen Jahren unterschiedlichemonth
-Indizes haben. Temporal.PlainDate.prototype.monthCode
Experimentell-
Gibt einen kalenderspezifischen String zurück, der den Monat dieses Datums repräsentiert. Kalender-abhängig. Normalerweise ist es
M
plus eine zweistellige Monatsnummer. Für Schaltmonate ist es der Code des vorherigen Monats gefolgt vonL
. Wenn der Schaltmonat der erste Monat des Jahres ist, ist der CodeM00L
. Temporal.PlainDate.prototype.monthsInYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die die Anzahl der Monate im Jahr dieses Datums repräsentiert. Kalender-abhängig. Für den ISO 8601-Kalender sind dies immer 12, aber in anderen Kalendersystemen kann dies variieren.
Temporal.PlainDate.prototype.weekOfYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Wochen-Index im
yearOfWeek
dieses Datums repräsentiert, oderundefined
, wenn der Kalender kein gut definiertes Wochensystem hat. Die erste Woche des Jahres ist1
. Kalender-abhängig. Beachten Sie, dass für ISO 8601 die ersten und letzten Tage des Jahres der letzten Woche des vorherigen Jahres oder der ersten Woche des folgenden Jahres zugeordnet sein können. Temporal.PlainDate.prototype.year
Experimentell-
Gibt eine Ganzzahl zurück, die die Anzahl der Jahre dieses Datums relativ zum Beginn eines kalenderspezifischen Epochenjahres repräsentiert. Kalender-abhängig. Normalerweise ist Jahr 1 entweder das erste Jahr der neuesten Ära oder das ISO 8601 Jahr
0001
. Wenn die Epoche in der Mitte des Jahres liegt, hat dieses Jahr denselben Wert vor und nach dem Startdatum der Ära. Temporal.PlainDate.prototype.yearOfWeek
Experimentell-
Gibt eine Ganzzahl zurück, die das Jahr repräsentiert, mit der die
weekOfYear
dieses Datums kombiniert werden soll, oderundefined
, wenn der Kalender kein gut definiertes Wochensystem hat. Kalender-abhängig. Normalerweise ist dies das Jahr des Datums, aber für ISO 8601 können die ersten und letzten Tage des Jahres der letzten Woche des vorangegangenen Jahres oder der ersten Woche des nächsten Jahres zugeordnet werden, wodurch sich dasyearOfWeek
um 1 unterscheidet. Temporal.PlainDate.prototype[Symbol.toStringTag]
-
Der anfängliche Wert der
[Symbol.toStringTag]
Eigenschaft ist der String"Temporal.PlainDate"
. Diese Eigenschaft wird inObject.prototype.toString()
verwendet.
Instanz-Methoden
Temporal.PlainDate.prototype.add()
Experimentell-
Gibt ein neues
Temporal.PlainDate
Objekt zurück, das dieses Datum um eine angegebene Dauer (in einer Form, die durchTemporal.Duration.from()
konvertierbar ist) nach vorne verschoben darstellt. Temporal.PlainDate.prototype.equals()
Experimentell-
Gibt
true
zurück, wenn dieses Datum einem anderen Datum (in einer Form, die durchTemporal.PlainDate.from()
konvertierbar ist) im Wert entspricht, undfalse
andernfalls. Sie werden sowohl durch ihre Datumswerte als auch durch ihre Kalender verglichen. Temporal.PlainDate.prototype.since()
Experimentell-
Gibt ein neues
Temporal.Duration
Objekt zurück, das die Dauer von einem anderen Datum (in einer Form, die durchTemporal.PlainDate.from()
konvertierbar ist) zu diesem Datum darstellt. Die Dauer ist positiv, wenn das andere Datum vor diesem Datum liegt, und negativ, wenn es danach liegt. Temporal.PlainDate.prototype.subtract()
Experimentell-
Gibt ein neues
Temporal.PlainDate
Objekt zurück, das dieses Datum um eine angegebene Dauer (in einer Form, die durchTemporal.Duration.from()
konvertierbar ist) nach hinten verschoben darstellt. Temporal.PlainDate.prototype.toJSON()
Experimentell-
Gibt einen String zurück, der dieses Datum im gleichen RFC 9557 Format wie der Aufruf von
toString()
darstellt. Soll implizit durchJSON.stringify()
aufgerufen werden. Temporal.PlainDate.prototype.toLocaleString()
Experimentell-
Gibt einen String mit einer sprachsensitiven Darstellung dieses Datums zurück.
Temporal.PlainDate.prototype.toPlainDateTime()
Experimentell-
Gibt ein neues
Temporal.PlainDateTime
Objekt zurück, das dieses Datum und eine bereitgestellte Zeit im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.toPlainMonthDay()
Experimentell-
Gibt ein neues
Temporal.PlainMonthDay
Objekt zurück, das denmonthCode
und denday
dieses Datums im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.toPlainYearMonth()
Experimentell-
Gibt ein neues
Temporal.PlainYearMonth
Objekt zurück, das dasyear
und denmonth
dieses Datums im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.toString()
Experimentell-
Gibt einen String zurück, der dieses Datum im RFC 9557 Format darstellt.
Temporal.PlainDate.prototype.toZonedDateTime()
Experimentell-
Gibt ein neues
Temporal.ZonedDateTime
Objekt zurück, das dieses Datum, eine bereitgestellte Zeit und eine bereitgestellte Zeitzone im gleichen Kalendersystem darstellt. Temporal.PlainDate.prototype.until()
Experimentell-
Gibt ein neues
Temporal.Duration
Objekt zurück, das die Dauer von diesem Datum zu einem anderen Datum (in einer Form, die durchTemporal.Instant.from()
konvertierbar ist) darstellt. Die Dauer ist positiv, wenn das andere Datum nach diesem Datum liegt, und negativ, wenn es davor liegt. Temporal.PlainDate.prototype.valueOf()
Experimentell-
Wirft einen
TypeError
, der verhindert, dassTemporal.PlainDate
Instanzen implizit in primitive Werte umgewandelt werden, wenn sie in arithmetischen oder Vergleichsoperationen verwendet werden. Temporal.PlainDate.prototype.with()
Experimentell-
Gibt ein neues
Temporal.PlainDate
Objekt zurück, das dieses Datum mit einigen durch neue Werte ersetzten Feldern darstellt. Temporal.PlainDate.prototype.withCalendar()
Experimentell-
Gibt ein neues
Temporal.PlainDate
Objekt zurück, das dieses Datum im neuen Kalendersystem interpretiert darstellt.
Spezifikationen
Specification |
---|
Temporal proposal # sec-temporal-plaindate-objects |