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 auf 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 mit Jahr-, Monat- und Tag-Feldern und einem zugehörigen Kalendersystem dargestellt.
Beschreibung
Ein PlainDate
ist im Wesentlichen der Datenteil eines Temporal.PlainDateTime
-Objekts, bei dem die Zeitinformationen entfernt wurden. Da die Datums- und Zeitinformationen nicht viel miteinander interagieren, sind alle allgemeinen Informationen zu 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 der 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
. DieYYYY
,MM
undDD
Komponenten können durch-
getrennt oder ohne Trennung angegeben werden. [u-ca=calendar_id]
Optional-
Ersetzten Sie
calendar_id
durch den zu verwendenden Kalender. Ein kritisches Flag kann durch Voranstellen des Schlüssels mit!
hinzugefügt werden: z.B.[!u-ca=iso8601]
. Dieses Flag weist andere Systeme normalerweise darauf hin, dass es nicht ignoriert werden kann, wenn sie es nicht unterstützen. DerTemporal
-Parser wird einen Fehler werfen, wenn die Anmerkungen zwei oder mehr Kalenderanmerkungen enthalten und eine davon kritisch ist. Standardmäßig wird[u-ca=iso8601]
verwendet. Beachten Sie, dass dasYYYY-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 die Zeitzonenkennung im gleichen Format wie bei PlainDateTime
angeben, aber diese werden ignoriert. Andere Anmerkungen im [key=value]
-Format werden ebenfalls ignoriert und dürfen das kritische Flag nicht haben.
Beim Serialisieren können Sie konfigurieren, ob die Kalender-ID angezeigt und ob ein kritisches Flag hinzugefügt werden soll.
Ungültige Datumsanpassung
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 die Konstruktion von Daten unter Verwendung kalender-spezifischer Eigenschaften. Die Datumskomponenten können außerhalb des gültigen Bereichs liegen. Im ISO-Kalender ist dies immer ein Überlauf, wie wenn der Monat größer als 12 oder der Tag größer als die Anzahl der Tage ist, und die Korrektur würde nur darin bestehen, den Wert auf den maximal zulässigen Wert zu beschränken. In anderen Kalendern kann der ungültige Fall komplexer sein. Bei Verwendung der Option overflow: "constrain"
werden ungültige Daten wie folgt korrigiert:
- Wenn der Tag nicht existiert, der Monat jedoch schon: Wählen Sie den nächstliegenden Tag im selben Monat. Wenn es zwei gleich nahestehende 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 entsprechend den kulturellen Konventionen der Benutzer dieses Kalenders. Dies wird normalerweise dazu führen, dass derselbe Tag im Monat davor oder danach gewählt wird, wo dieser Monat normalerweise in einem Schaltjahr fällt.
- Wenn der Monat aus anderen Gründen im Jahr nicht existiert: Wählen Sie das nächstliegende Datum, das noch im selben Jahr liegt. Wenn es zwei gleich nahestehende Daten in diesem Jahr gibt, wählen Sie das spätere.
- Wenn das gesamte Jahr nicht existiert: Wählen Sie das nächstliegende Datum in einem anderen Jahr. Wenn es zwei gleich nahestehende Daten gibt, wählen Sie das spätere.
Konstruktor
Temporal.PlainDate()
Experimentell-
Erstellt ein neues
Temporal.PlainDate
-Objekt, indem die zugrundeliegenden Daten direkt bereitgestellt werden.
Statische Methoden
Temporal.PlainDate.compare()
Experimentell-
Gibt eine Zahl (-1, 0 oder 1) zurück, die angibt, ob das erste Datum vor dem zweiten Datum liegt, mit ihm identisch ist oder nach ihm liegt. Entspricht dem Vergleich der Jahr-, Monat- und Tagesfelder der zugrundeliegenden ISO 8601-Daten.
Temporal.PlainDate.from()
Experimentell-
Erstellt ein neues
Temporal.PlainDate
-Objekt aus einem anderenTemporal.PlainDate
-Objekt, einem Objekt mit Datumseigenschaften oder einem RFC 9557 String.
Instanzeigenschaften
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 Anfangswert derTemporal.PlainDate()
-Konstruktor. Temporal.PlainDate.prototype.day
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tagesindex im Monat dieses Datums darstellt, was derselbe Tag ist, den Sie auf einem Kalender sehen würden. Kalender-abhängig. Beginnt in der Regel bei 1 und ist kontinuierlich, aber nicht immer.
Temporal.PlainDate.prototype.dayOfWeek
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tagesindex in der Woche dieses Datums darstellt. Die 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 die Kalender eine andere Definition haben könnten (sieheIntl.Locale.prototype.getWeekInfo()
). Temporal.PlainDate.prototype.dayOfYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Tagesindex 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 Ganzzahl zurück, die die Anzahl der Tage im Monat dieses Datums darstellt. Kalender-abhängig.
Temporal.PlainDate.prototype.daysInWeek
Experimentell-
Gibt eine positive Ganzzahl 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 es von Woche zu Woche unterschiedlich sein.
Temporal.PlainDate.prototype.daysInYear
Experimentell-
Gibt eine positive Ganzzahl 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 kalender-spezifischen Kleinbuchstaben-String zurück, der die Ära dieses Datums darstellt, oder
undefined
, wenn der Kalender keine Ären verwendet (z.B. ISO 8601).era
underaYear
identifizieren zusammen ein Jahr in einem Kalender eindeutig, ähnlich wieyear
. Kalender-abhängig. Für den gregorianischen Kalender 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 darstellt oder
undefined
, wenn der Kalender keine Ären 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. Gregorisches BCE).era
underaYear
identifizieren zusammen ein Jahr in einem Kalender eindeutig, ähnlich wieyear
. Kalender-abhängig. Temporal.PlainDate.prototype.inLeapYear
Experimentell-
Gibt einen boolean zurück, der angibt, ob dieses Datum in einem Schaltjahr liegt. Ein Schaltjahr ist ein Jahr, das mehr Tage hat (aufgrund eines Schalttages oder -monats) als ein einfaches Jahr. Kalender-abhängig.
Temporal.PlainDate.prototype.month
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Monatsindex im Jahr dieses Datums darstellt. Der erste Monat dieses Jahres ist
1
und der letzte Monat ist dermonthsInYear
. Kalender-abhängig. Beachten Sie, dass der Index im Gegensatz zuDate.prototype.getMonth()
1-basiert ist. Wenn der Kalender Schaltmonate hat, dann können Monate mit demselbenmonthCode
unterschiedlichmonth
-Indizes für unterschiedliche Jahre haben. Temporal.PlainDate.prototype.monthCode
Experimentell-
Gibt einen kalender-spezifischen String zurück, der den Monat dieses Datums darstellt. Kalender-abhängig. In der Regel ist es
M
plus einer zweistelligen Monatszahl. 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 darstellt. Kalender-abhängig. Für den ISO 8601-Kalender sind es immer 12, aber in anderen Kalendersystemen kann es variieren.
Temporal.PlainDate.prototype.weekOfYear
Experimentell-
Gibt eine positive Ganzzahl zurück, die den 1-basierten Wochenindex im
yearOfWeek
dieses Datums darstellt, 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 nächsten Jahres zugeordnet werden können. Temporal.PlainDate.prototype.year
Experimentell-
Gibt eine Ganzzahl zurück, die die Anzahl der Jahre dieses Datums relativ zum Anfang eines kalender-spezifischen Epoch-Jahres darstellt. Kalender-abhängig. In der Regel 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 vor und nach dem Startdatum der Ära denselben Wert. Temporal.PlainDate.prototype.yearOfWeek
Experimentell-
Gibt eine Ganzzahl zurück, die das Jahr darstellt, das mit der
weekOfYear
dieses Datums gepaart werden soll, oderundefined
, wenn der Kalender kein gut 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 zugeordnet werden, wodurch sich dasyearOfWeek
um 1 unterscheiden kann. 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 angegebene Dauer vorwärts verschoben darstellt (in einer Form, die durchTemporal.Duration.from()
umwandelbar ist). Temporal.PlainDate.prototype.equals()
Experimentell-
Gibt
true
zurück, wenn dieses Datum in Wert einem anderen Datum (in einer Form, die durchTemporal.PlainDate.from()
umwandelbar ist) entspricht, undfalse
sonst. Sie werden sowohl durch ihre Datumswerte als auch 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()
umwandelbar 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 rückwärts verschoben darstellt (in einer Form, die durchTemporal.Duration.from()
umwandelbar ist). Temporal.PlainDate.prototype.toJSON()
Experimentell-
Gibt einen String zurück, der dieses Datum im gleichen RFC 9557-Format repräsentiert wie ein Aufruf von
toString()
. Er soll implizit vonJSON.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 selben Kalendersystem darstellt. Temporal.PlainDate.prototype.toPlainMonthDay()
Experimentell-
Gibt ein neues
Temporal.PlainMonthDay
-Objekt zurück, das denmonthCode
undday
dieses Datums im selben Kalendersystem darstellt. Temporal.PlainDate.prototype.toPlainYearMonth()
Experimentell-
Gibt ein neues
Temporal.PlainYearMonth
-Objekt zurück, das denyear
undmonth
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 bereitgestellte Zeit und eine bereitgestellte Zeitzone im selben Kalendersystem darstellt. Temporal.PlainDate.prototype.until()
Experimentell-
Gibt ein neues
Temporal.Duration
-Objekt zurück, das die Dauer von diesem Datum bis zu einem anderen Datum darstellt (in einer Form, die durchTemporal.Instant.from()
umwandelbar ist). 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
, was verhindert, dassTemporal.PlainDate
-Instanzen bei arithmetischen oder Vergleichsoperationen implizit in Primitive umgewandelt werden. Temporal.PlainDate.prototype.with()
Experimentell-
Gibt ein neues
Temporal.PlainDate
-Objekt zurück, das dieses Datum mit einigen Feldern ersetzt durch neue Werte 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 |