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 passiert, unabhängig von der Zeitzone, in der es stattfindet. Es wird grundsätzlich als ISO 8601-Kalenderdatum dargestellt, mit den Feldern Jahr, Monat und Tag und einem zugehörigen Kalendersystem.
Beschreibung
Ein PlainDate
ist im Wesentlichen der Datumsteil eines Temporal.PlainDateTime
-Objekts, wobei die Zeitinformationen entfernt wurden. Da Datum und Zeit nicht viel miteinander interagieren, sind alle allgemeinen Informationen über Datumseigenschaften hier dokumentiert.
RFC 9557-Format
PlainDate
-Objekte können im RFC 9557-Format serialisiert und geparst werden, einer Erweiterung des ISO 8601 / RFC 3339-Formats. Der String hat folgende Form (Leerzeichen dienen nur zur besseren Lesbarkeit und sollten im eigentlichen 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 sein. [u-ca=calendar_id]
Optional-
Ersetzen Sie
calendar_id
durch den zu verwendenden Kalender. SieheIntl.supportedValuesOf()
für eine Liste häufig unterstützter Kalendertypen. Standardmäßig[u-ca=iso8601]
. Kann ein kritisches Flag haben, indem der Schlüssel mit!
vorangestellt wird: z.B.[!u-ca=iso8601]
. Dieses Flag weist in der Regel andere Systeme darauf hin, dass es nicht ignoriert werden kann, wenn sie es nicht unterstützen. DerTemporal
-Parser wirft einen Fehler, wenn die Anmerkungen zwei oder mehr Kalenderanmerkungen enthalten und eine davon kritisch ist. Beachten Sie, dass dasYYYY-MM-DD
immer als Kalenderdatum im ISO 8601-Format interpretiert wird und dann in den angegebenen Kalender konvertiert wird.
Als Eingabe können Sie optional die Zeit, den Versatz und die Zeitzonenkennung im gleichen Format wie PlainDateTime
einfü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 werden soll und ob ein kritisches Flag hinzugefügt werden soll.
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 kalenderspezifischen Eigenschaften zu konstruieren. Die Datumskomponenten können außerhalb des gültigen Bereichs liegen. Im ISO-Kalender ist dies immer ein Überlauf, wie z.B. ein Monat, der größer als 12 ist, oder ein Tag, der größer ist als die Anzahl der Tage, und die Behebung würde nur bedeuten, den Wert auf den maximal zulässigen Wert zu begrenzen. In anderen Kalendern kann der ungültige Fall komplexer sein. Wenn Sie die Option overflow: "constrain"
verwenden, werden ungültige Daten auf folgende Weise auf ein gültiges korrigiert:
- Wenn der Tag nicht existiert, aber der Monat schon: Wählen Sie den nächstgelegenen Tag im selben Monat. Wenn es zwei gleich nahegelegene Daten in diesem Monat gibt, wählen Sie das spätere aus.
- Wenn der Monat ein Schaltmonat ist, der im Jahr nicht existiert: Wählen Sie ein anderes Datum gemäß den kulturellen Gepflogenheiten der Benutzer dieses Kalenders. Üblicherweise führt dies zum selben Tag in dem Monat davor oder danach, in dem dieser Monat in einem Schaltjahr normalerweise vorkommen würde.
- Wenn der Monat aus anderen Gründen im Jahr nicht existiert: Wählen Sie das nächstgelegene Datum, das noch im selben Jahr liegt. Wenn es zwei gleich nahegelegene Daten in diesem Jahr gibt, wählen Sie das spätere aus.
- Wenn das ganze Jahr nicht existiert: Wählen Sie das nächstgelegene Datum in einem anderen Jahr. Wenn es zwei gleich nahegelegene Daten gibt, wählen Sie das spätere aus.
Konstruktor
Temporal.PlainDate()
Experimentell-
Erstellt ein neues
Temporal.PlainDate
-Objekt, indem die zugrunde liegenden Daten direkt angegeben werden.
Statische Methoden
Temporal.PlainDate.compare()
Experimentell-
Gibt eine Zahl (-1, 0 oder 1) zurück, die angibt, ob das erste Datum vor, gleich 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.
Instanzeigenschaften
Diese Eigenschaften sind auf Temporal.PlainDate.prototype
definiert und werden von allen Instanzen von Temporal.PlainDate
geteilt.
Temporal.PlainDate.prototype.calendarId
Experimentell-
Gibt einen String zurück, der den Kalender repräsentiert, mit dem das interne ISO 8601-Datum interpretiert wird.
Temporal.PlainDate.prototype.constructor
-
Die Konstruktorfunktion, die das Instanzobjekt erstellt hat. Bei
Temporal.PlainDate
-Instanzen ist der Anfangswert derTemporal.PlainDate()
-Konstruktor. Temporal.PlainDate.prototype.day
Experimentell-
Gibt eine positive ganze Zahl zurück, die den 1-basierten Tag-Index im Monat dieses Datums darstellt, was der gleiche Tag ist, den man auf einem Kalender sähe. Kalender-abhängig. Beginnt in der Regel bei 1 und ist kontinuierlich, aber nicht immer.
Temporal.PlainDate.prototype.dayOfWeek
Experimentell-
Gibt eine positive ganze Zahl zurück, die den 1-basierten Tag-Index in der Woche dieses Datums darstellt. Tage in einer Woche sind der Reihe nach von
1
bisdaysInWeek
nummeriert, wobei jede Zahl ihrem Namen zugeordnet ist. Kalender-abhängig. 1 repräsentiert in der Regel Montag im Kalender, auch wenn Lokalisierungen, die den Kalender verwenden, möglicherweise einen anderen Tag als ersten Tag der Woche betrachten (sieheIntl.Locale.prototype.getWeekInfo()
). Temporal.PlainDate.prototype.dayOfYear
Experimentell-
Gibt eine positive ganze Zahl zurück, die den 1-basierten Tag-Index im Jahr dieses Datums darstellt. Der erste Tag dieses Jahres ist
1
und der letzte Tag ist derdaysInYear
. Kalender-abhängig. Temporal.PlainDate.prototype.daysInMonth
Experimentell-
Gibt eine positive ganze Zahl zurück, die die Anzahl der Tage im Monat dieses Datums darstellt. Kalender-abhängig.
Temporal.PlainDate.prototype.daysInWeek
Experimentell-
Gibt eine positive ganze Zahl zurück, die die Anzahl der Tage in der Woche dieses Datums darstellt. Kalender-abhängig. Für den ISO 8601-Kalender sind es immer 7, aber in anderen Kalendersystemen kann dies von Woche zu Woche unterschiedlich sein.
Temporal.PlainDate.prototype.daysInYear
Experimentell-
Gibt eine positive ganze Zahl zurück, die die Anzahl der Tage im Jahr dieses Datums darstellt. Kalender-abhängig. Für den ISO 8601-Kalender sind es 365 oder 366 in einem Schaltjahr.
Temporal.PlainDate.prototype.era
Experimentell-
Gibt einen kalenderspezifischen Kleinbuchstaben-String zurück, der die Ära dieses Datums darstellt, oder
undefined
, wenn der Kalender keine Epochen verwendet (z.B. ISO 8601).era
underaYear
identifizieren zusammen eindeutig ein Jahr in einem Kalender, ebenso wieyear
. Kalender-abhängig. Für Gregorianisch ist es entweder"gregory"
oder"gregory-inverse"
. Temporal.PlainDate.prototype.eraYear
Experimentell-
Gibt eine nicht-negative ganze Zahl zurück, die das Jahr dieses Datums innerhalb der Ära darstellt, oder
undefined
, wenn der Kalender keine Epochen verwendet (z.B. ISO 8601). Der Jahr-Index beginnt in der Regel bei 1 (häufiger) oder 0, und Jahre in einer Epoche können im Laufe der Zeit abnehmen (z.B. Gregorianisch BCE).era
underaYear
identifizieren zusammen eindeutig ein Jahr in einem Kalender, ebenso wieyear
. Kalender-abhängig. Temporal.PlainDate.prototype.inLeapYear
Experimentell-
Gibt einen booleanischen Wert zurück, der angibt, ob dieses Datum in einem Schaltjahr ist. Ein Schaltjahr ist ein Jahr, das mehr Tage hat (aufgrund eines Schalttags oder Schaltmonats) als ein gewöhnliches Jahr. Kalender-abhängig.
Temporal.PlainDate.prototype.month
Experimentell-
Gibt eine positive ganze Zahl zurück, die den 1-basierten Monat-Index im Jahr dieses Datums darstellt. 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, dann kann der Monat mit dem gleichenmonthCode
unterschiedlichemonth
-Indizes für unterschiedliche Jahre haben. Temporal.PlainDate.prototype.monthCode
Experimentell-
Gibt einen kalenderspezifischen String zurück, der den Monat dieses Datums darstellt. Kalender-abhängig. In der Regel ist es
M
plus eine zweistellige Monatszahl. Für Schaltmonate ist es der vorherige Monatscode gefolgt vonL
. Wenn der Schaltmonat der erste Monat des Jahres ist, ist der CodeM00L
. Temporal.PlainDate.prototype.monthsInYear
Experimentell-
Gibt eine positive ganze Zahl zurück, die die Anzahl der Monate im Jahr dieses Datums darstellt. Kalender-abhängig. Für den ISO 8601-Kalender sind es immer 12, aber in anderen Kalendersystemen kann es abweichen.
Temporal.PlainDate.prototype.weekOfYear
Experimentell-
Gibt eine positive ganze Zahl zurück, die den 1-basierten Wochen-Index im
yearOfWeek
dieses Datums darstellt, oderundefined
, wenn der Kalender kein klar definiertes Wochensystem hat. Die erste Woche des Jahres ist1
. Kalender-abhängig. Beachten Sie, dass im ISO 8601 die ersten und letzten Tage des Jahres der letzten Woche des vorherigen Jahres oder der ersten Woche des nächsten Jahres zugeschrieben werden können. Temporal.PlainDate.prototype.year
Experimentell-
Gibt eine ganze Zahl zurück, die die Anzahl der Jahre dieses Datums relativ zum Beginn eines kalenderspezifischen Epochenjahres darstellt. Kalender-abhängig. In der Regel ist Jahr 1 entweder das erste Jahr der neuesten Epoche oder das ISO 8601-Jahr
0001
. Wenn die Epoche in der Mitte des Jahres liegt, hat das Jahr denselben Wert vor und nach dem Startdatum der Epoche. Temporal.PlainDate.prototype.yearOfWeek
Experimentell-
Gibt eine ganze Zahl zurück, die das Jahr repräsentiert, das mit der
weekOfYear
dieses Datums gepaart werden soll, oderundefined
, wenn der Kalender kein klar definiertes Wochensystem hat. Kalender-abhängig. In der Regel ist dies das Jahr des Datums, aber für ISO 8601 können die ersten und letzten Tage des Jahres der letzten Woche des vorherigen Jahres oder der ersten Woche des nächsten Jahres zugeschrieben werden, was dazu führt, dass sich dasyearOfWeek
um 1 unterscheidet. Temporal.PlainDate.prototype[Symbol.toStringTag]
-
Der Anfangswert der
[Symbol.toStringTag]
-Eigenschaft ist der String"Temporal.PlainDate"
. Diese Eigenschaft wird inObject.prototype.toString()
verwendet.
Instanzmethoden
Temporal.PlainDate.prototype.add()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum um eine gegebene Dauer verschoben repräsentiert (in einer Form, die vonTemporal.Duration.from()
umwandelbar ist). Temporal.PlainDate.prototype.equals()
Experimentell-
Gibt
true
zurück, wenn dieses Datum einem anderen Datum gleichwertig ist (in einer Form, die vonTemporal.PlainDate.from()
umwandelbar ist), 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 vonTemporal.PlainDate.from()
umwandelbar ist) zu diesem Datum darstellt. Die Dauer ist positiv, wenn das andere Datum vor diesem Datum liegt, und negativ, wenn danach. Temporal.PlainDate.prototype.subtract()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum um eine gegebene Dauer rückwärts verschoben darstellt (in einer Form, die vonTemporal.Duration.from()
umwandelbar ist). Temporal.PlainDate.prototype.toJSON()
Experimentell-
Gibt einen String zurück, der dieses Datum im selben RFC 9557-Format darstellt wie ein Aufruf von
toString()
. 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 angegebene Zeit im selben Kalendersystem repräsentiert. Temporal.PlainDate.prototype.toPlainMonthDay()
Experimentell-
Gibt ein neues
Temporal.PlainMonthDay
-Objekt zurück, das denmonthCode
und denday
dieses Datums im selben Kalendersystem darstellt. Temporal.PlainDate.prototype.toPlainYearMonth()
Experimentell-
Gibt ein neues
Temporal.PlainYearMonth
-Objekt zurück, das denyear
und denmonth
dieses Datums im selben 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 angegebene Zeit und eine angegebene Zeitzone im selben 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 darstellt (in einer Form, die vonTemporal.Instant.from()
umwandelbar ist). Die Dauer ist positiv, wenn das andere Datum nach diesem Datum liegt, und negativ, wenn vorher. Temporal.PlainDate.prototype.valueOf()
Experimentell-
Wirft einen
TypeError
, der verhindert, dassTemporal.PlainDate
-Instanzen implizit in primitive Typen 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 darstellt, wobei einige Felder durch neue Werte ersetzt wurden. Temporal.PlainDate.prototype.withCalendar()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum interpretiert im neuen Kalendersystem darstellt.
Spezifikationen
Specification |
---|
Temporal # sec-temporal-plaindate-objects |