Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Temporal.PlainDate

Disponibilité limitée

Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.

L'objet Temporal.PlainDate représente une date du calendrier (une date sans heure ni fuseau horaire) ; par exemple, un évènement sur un calendrier qui se produit pendant toute la journée, quel que soit le fuseau horaire. Il est fondamentalement représenté comme une date du calendrier ISO 8601, avec des champs pour l'année, le mois et le jour, et un système de calendrier associé.

Description

Un objet PlainDate est essentiellement la partie date d'un objet Temporal.PlainDateTime, avec les informations de temps supprimées. Comme les informations de date et d'heure n'ont pas beaucoup d'interaction, toutes les informations générales sur les propriétés de date sont documentées ici.

Format RFC 9557

Les objets PlainDate peuvent être sérialisés et analysés en utilisant le format RFC 9557 (ang.), une extension du format ISO 8601 / RFC 3339 (ang.). La chaîne de caractères a la forme suivante (les espaces sont uniquement pour la lisibilité et ne doivent pas être présents dans la chaîne de caractères réelle) :

YYYY-MM-DD [u-ca=calendar_id]
YYYY

Soit un nombre à quatre chiffres, soit un nombre à six chiffres avec un signe + ou -.

MM

Un nombre à deux chiffres de 01 à 12.

DD

Un nombre à deux chiffres de 01 à 31. Les composants YYYY, MM et DD peuvent être séparés par - ou rien.

[u-ca=calendar_id] Facultatif

Remplacez calendar_id par le calendrier à utiliser. Voir Intl.supportedValuesOf() pour une liste des types de calendriers couramment pris en charge. Par défaut, [u-ca=iso8601]. Peut avoir un drapeau critique en préfixant la clé avec ! : par exemple, [!u-ca=iso8601]. Ce drapeau indique généralement aux autres systèmes qu'il ne peut pas être ignoré s'ils ne le prennent pas en charge. L'analyseur Temporal générera une erreur si les annotations contiennent deux annotations de calendrier ou plus et que l'une d'elles est critique. Notez que le YYYY-MM-DD est toujours interprété comme une date du calendrier ISO 8601, puis converti en calendrier défini.

Comme entrée, vous pouvez éventuellement inclure l'heure, le décalage et l'identifiant du fuseau horaire, dans le même format que PlainDateTime, mais ils seront ignorés. Les autres annotations au format [clé=valeur] sont également ignorées et ne doivent pas avoir le drapeau critique.

Lors de la sérialisation, vous pouvez configurer l'affichage de l'identifiant du calendrier et l'ajout d'un drapeau critique pour celui-ci.

Fixer les dates invalides

Les méthodes Temporal.PlainDate.from(), Temporal.PlainDate.prototype.with(), Temporal.PlainDate.prototype.add(), Temporal.PlainDate.prototype.subtract() et leurs homologues dans d'autres objets Temporal, permettent de construire des dates en utilisant des propriétés spécifiques au calendrier. Les composants de la date peuvent être hors de portée. Dans le calendrier ISO, il s'agit toujours d'un dépassement, comme le mois étant supérieur à 12 ou le jour étant supérieur au nombre de jours, et le corriger ne consisterait qu'à limiter la valeur à la valeur maximale autorisée. Dans d'autres calendriers, le cas invalide peut être plus complexe. Lors de l'utilisation de l'option overflow: "constrain", les dates invalides sont corrigées pour devenir valides de la manière suivante :

  • Si le jour n'existe pas mais que le mois existe : choisissez le jour le plus proche dans le même mois. S'il y a deux dates également proches dans ce mois, choisissez la plus tardive.
  • Si le mois est un mois intercalaire qui n'existe pas dans l'année : choisissez une autre date selon les conventions culturelles des utilisateur·ice·s de ce calendrier. Cela se traduira généralement par le même jour dans le mois précédent ou suivant où ce mois tomberait normalement dans une année bissextile.
  • Si le mois n'existe pas dans l'année pour d'autres raisons : choisissez la date la plus proche qui est encore dans la même année. S'il y a deux dates également proches dans cette année, choisissez la plus tardive.
  • Si l'année entière n'existe pas : choisissez la date la plus proche dans une autre année. S'il y a deux dates également proches, choisissez la plus tardive.

Constructeur

Temporal.PlainDate() Expérimental

Crée un nouvel objet Temporal.PlainDate en fournissant directement les données sous-jacentes.

Méthodes statiques

Temporal.PlainDate.compare()

Retourne un nombre (-1, 0 ou 1) indiquant si la première date est antérieure, identique ou postérieure à la deuxième date. Équivaut à comparer les champs année, mois et jour des dates ISO 8601 sous-jacentes.

Temporal.PlainDate.from()

Crée un nouvel objet Temporal.PlainDate à partir d'un autre objet Temporal.PlainDate, d'un objet avec des propriétés de date ou d'une chaîne au format RFC 9557.

Propriétés d'instance

Ces propriétés sont définies sur Temporal.PlainDate.prototype et partagées par toutes les instances de Temporal.PlainDate.

Temporal.PlainDate.prototype.calendarId

Retourne une chaîne de caractères représentant le calendrier utilisé pour interpréter la date ISO 8601 interne.

Temporal.PlainDate.prototype.constructor

La fonction constructeur qui a créé l'objet instance. Pour les instances de Temporal.PlainDate, la valeur initiale est le constructeur Temporal.PlainDate().

Temporal.PlainDate.prototype.day

Retourne un entier positif représentant l'index du jour dans le mois de cette date, basé sur 1, ce qui correspond au numéro de jour que vous verriez sur un calendrier. Dépend du calendrier. Généralement commence à 1 et est continu, mais pas toujours.

Temporal.PlainDate.prototype.dayOfWeek

Retourne un entier positif représentant l'index du jour dans la semaine de cette date, basé sur 1. Les jours de la semaine sont numérotés séquentiellement de 1 à daysInWeek, chaque numéro correspondant à son nom. Dépend du calendrier. 1 représente généralement le lundi dans le calendrier, même lorsque les locales utilisant le calendrier peuvent considérer un autre jour comme le premier jour de la semaine (voir Intl.Locale.prototype.getWeekInfo()).

Temporal.PlainDate.prototype.dayOfYear

Retourne un entier positif représentant l'index du jour dans l'année de cette date, basé sur 1. Le premier jour de cette année est 1, et le dernier jour est le daysInYear. Dépend du calendrier.

Temporal.PlainDate.prototype.daysInMonth

Retourne un entier positif représentant le nombre de jours dans le mois de cette date. Dépend du calendrier.

Temporal.PlainDate.prototype.daysInWeek

Retourne un entier positif représentant le nombre de jours dans la semaine de cette date. Dépend du calendrier. Pour le calendrier ISO 8601, c'est toujours 7, mais dans d'autres systèmes de calendrier, cela peut varier d'une semaine à l'autre.

Temporal.PlainDate.prototype.daysInYear

Retourne un entier positif représentant le nombre de jours dans l'année de cette date. Dépend du calendrier. Pour le calendrier ISO 8601, c'est 365, ou 366 dans une année bissextile.

Temporal.PlainDate.prototype.era

Retourne une chaîne de caractères en minuscules spécifique au calendrier représentant l'ère de cette date, ou undefined si le calendrier n'utilise pas d'ères (par exemple, ISO 8601). era et eraYear identifient ensemble de manière unique une année dans un calendrier, de la même manière que year. Dépend du calendrier. Pour le calendrier grégorien, c'est soit "ce", soit "bce".

Temporal.PlainDate.prototype.eraYear

Retourne un entier qui n'est pas négatif représentant l'année de cette date dans l'ère, ou undefined si le calendrier n'utilise pas d'ères (par exemple, ISO 8601). L'index de l'année commence généralement à 1 (plus courant) ou 0, et les années dans une ère peuvent diminuer avec le temps (par exemple, BCE grégorien). era et eraYear identifient ensemble de manière unique une année dans un calendrier, de la même manière que year. Dépend du calendrier.

Temporal.PlainDate.prototype.inLeapYear

Retourne un booléen indiquant si cette date se trouve dans une année bissextile. Une année bissextile est une année qui a plus de jours (en raison d'un jour ou d'un mois intercalaire) qu'une année commune. Dépend du calendrier.

Temporal.PlainDate.prototype.month

Retourne un entier positif représentant l'index du mois dans l'année de cette date, basé sur 1. Le premier mois de cette année est 1, et le dernier mois est le monthsInYear. Dépend du calendrier. Notez que contrairement à Date.prototype.getMonth(), l'index est basé sur 1. Si le calendrier a des mois intercalaires, alors le mois avec le même monthCode peut avoir des index de month différents pour différentes années.

Temporal.PlainDate.prototype.monthCode

Retourne une chaîne de caractères spécifique au calendrier représentant le mois de cette date. Dépend du calendrier. Généralement, c'est M suivi d'un numéro de mois à deux chiffres. Pour les mois intercalaires, c'est le code du mois précédent suivi de L. Si le mois intercalaire est le premier mois de l'année, le code est M00L.

Temporal.PlainDate.prototype.monthsInYear

Retourne un entier positif représentant le nombre de mois dans l'année de cette date. Dépend du calendrier. Pour le calendrier ISO 8601, c'est toujours 12, mais dans d'autres systèmes de calendrier, cela peut varier.

Temporal.PlainDate.prototype.weekOfYear

Retourne un entier positif représentant l'index de la semaine dans l'année de cette date, basé sur 1, ou undefined si le calendrier n'a pas de système de semaine bien défini. La première semaine de l'année est 1. Dépend du calendrier. Notez que pour ISO 8601, les premiers et derniers jours de l'année peuvent être attribués à la dernière semaine de l'année précédente ou à la première semaine de l'année suivante.

Temporal.PlainDate.prototype.year

Retourne un entier représentant le nombre d'années de cette date par rapport au début d'une année d'époque spécifique au calendrier. Dépend du calendrier. Généralement, l'année 1 est soit la première année de la dernière ère, soit l'année ISO 8601 0001. Si l'époque est au milieu de l'année, cette année aura la même valeur avant et après la date de début de l'ère.

Temporal.PlainDate.prototype.yearOfWeek

Retourne un entier représentant l'année à associer à l'index de la semaine de cette date, ou undefined si le calendrier n'a pas de système de semaine bien défini. Dépend du calendrier. Généralement, c'est l'année de la date, mais pour ISO 8601, les premiers et derniers jours de l'année peuvent être attribués à la dernière semaine de l'année précédente ou à la première semaine de l'année suivante, ce qui fait que yearOfWeek peut différer de 1.

Temporal.PlainDate.prototype[Symbol.toStringTag]

La valeur initiale de la propriété [Symbol.toStringTag] est la chaîne de caractères "Temporal.PlainDate". Cette propriété est utilisée dans Object.prototype.toString().

Méthodes d'instance

Temporal.PlainDate.prototype.add()

Retourne un nouvel objet Temporal.PlainDate représentant cette date avancée d'une durée donnée (sous une forme convertible par Temporal.Duration.from()).

Temporal.PlainDate.prototype.equals()

Retourne true si cette date est équivalente en valeur à une autre date (sous une forme convertible par Temporal.PlainDate.from()), et false sinon. Elles sont comparées à la fois par leurs valeurs de date et leurs calendriers.

Temporal.PlainDate.prototype.since()

Retourne un nouvel objet Temporal.Duration représentant la durée entre une autre date (sous une forme convertible par Temporal.PlainDate.from()) et cette date. La durée est positive si l'autre date est avant cette date, et négative si elle est après.

Temporal.PlainDate.prototype.subtract()

Retourne un nouvel objet Temporal.PlainDate représentant cette date reculée d'une durée donnée (sous une forme convertible par Temporal.Duration.from()).

Temporal.PlainDate.prototype.toJSON()

Retourne une chaîne de caractères représentant cette date dans le même format RFC 9557 que l'appel de toString(). Destiné à être appelé implicitement par JSON.stringify().

Temporal.PlainDate.prototype.toLocaleString()

Retourne une chaîne de caractères représentant cette date de manière sensible à la langue.

Temporal.PlainDate.prototype.toPlainDateTime()

Retourne un nouvel objet Temporal.PlainDateTime représentant cette date et une heure fournie dans le même système de calendrier.

Temporal.PlainDate.prototype.toPlainMonthDay()

Retourne un nouvel objet Temporal.PlainMonthDay représentant le monthCode et le day de cette date dans le même système de calendrier.

Temporal.PlainDate.prototype.toPlainYearMonth()

Retourne un nouvel objet Temporal.PlainYearMonth représentant l'year et le month de cette date dans le même système de calendrier.

Temporal.PlainDate.prototype.toString()

Retourne une chaîne de caractères représentant cette date dans le format RFC 9557.

Temporal.PlainDate.prototype.toZonedDateTime()

Retourne un nouvel objet Temporal.ZonedDateTime représentant cette date, une heure fournie et un fuseau horaire fourni, dans le même système de calendrier.

Temporal.PlainDate.prototype.until()

Retourne un nouvel objet Temporal.Duration représentant la durée entre cette date et une autre date (sous une forme convertible par Temporal.Instant.from()). La durée est positive si l'autre date est après cette date, et négative si elle est avant.

Temporal.PlainDate.prototype.valueOf()

Lève une TypeError, ce qui empêche les instances de Temporal.PlainDate d'être converties implicitement en primitives lorsqu'elles sont utilisées dans des opérations arithmétiques ou de comparaison.

Temporal.PlainDate.prototype.with()

Retourne un nouvel objet Temporal.PlainDate représentant cette date avec certains champs remplacés par de nouvelles valeurs.

Temporal.PlainDate.prototype.withCalendar()

Retourne un nouvel objet Temporal.PlainDate représentant cette date interprétée dans le nouveau système de calendrier.

Spécifications

Spécification
Temporal
# sec-temporal-plaindate-objects

Compatibilité des navigateurs

Voir aussi