Temporal.PlainMonthDay
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.PlainMonthDay représente le mois et le jour d'une date calendaire, sans année ni fuseau horaire ; par exemple, un évènement sur un calendrier qui se répète chaque année et couvre toute la journée. Il est fondamentalement représenté comme une date au format ISO 8601, avec des champs année, mois et jour, et un système de calendrier associé. L'année est utilisée pour lever l'ambiguïté du mois et du jour dans les systèmes calendaires non ISO.
Description
Un PlainMonthDay est essentiellement la partie mois et jour d'un objet Temporal.PlainDate, sans l'année. Parce que la signification d'un mois et jour peut changer d'une année à l'autre (par exemple, s'il existe ou quelle est la date du jour suivant), cet objet n'offre pas beaucoup de fonctionnalités en lui-même, telles que la comparaison, l'addition ou la soustraction. Il n'a même pas de propriété month, car l'indice du mois n'a pas de sens sans une année (par exemple, deux mois provenant de deux années ayant le même indice peuvent porter des noms différents dans le cas des mois intercalaires).
Format RFC 9557
Les objets PlainMonthDay peuvent être sérialisés et analysés en utilisant le format RFC 9557 (angl.), une extension du format ISO 8601 / RFC 3339 (angl.). La chaîne de caractères a la forme suivante (les espaces sont uniquement pour la lisibilité et ne doivent pas figurer dans la chaîne de caractères réelle) :
YYYY-MM-DD [u-ca=calendar_id]
YYYYFacultatif-
Soit un nombre à quatre chiffres, soit un nombre à six chiffres précédé d'un signe
+ou-. Il est requis pour les calendriers non ISO, et optionnel sinon. S'il est omis, vous pouvez soit remplacerYYYY-par--(de sorte que la chaîne de caractères ressemble à--MM-DDou--MMDD), soit omettre entièrement la partieYYYY-(de sorte que la chaîne de caractères ressemble àMM-DDouMMDD). Notez que l'année de référence effectivement stockée peut être différente de celle que vous fournissez, mais le mois et le jour représenté est le même. VoirTemporal.PlainMonthDay.from()pour plus d'informations. MM-
Un nombre à deux chiffres de
01à12. DD-
Un nombre à deux chiffres de
01à31. Les composantsYYYY,MMetDDpeuvent être séparés par-ou non. [u-ca=calendar_id]Facultatif-
Remplacez
calendar_idpar le calendrier à utiliser. VoirIntl.supportedValuesOf()pour une liste des types de calendriers couramment pris en charge. Par défaut[u-ca=iso8601]. Peut comporter un drapeau critique en préfixant la clé par!: 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'analyseurTemporallèvera une erreur si les annotations contiennent deux annotations de calendrier ou plus et que l'une d'elles est critique. Notez queYYYY-MM-DDest toujours interprété comme une date au format ISO 8601 puis converti vers le calendrier défini.
En entrée, vous pouvez optionnellement inclure l'heure, le décalage et l'identifiant du fuseau horaire, dans le même format que PlainDateTime, mais ils seront ignorés. D'autres annotations au format [clé=valeur] sont également ignorées et ne doivent pas comporter le drapeau critique.
Lors de la sérialisation, vous pouvez configurer l'affichage de l'identifiant de calendrier et l'ajout éventuel d'un drapeau critique.
Constructeur
Temporal.PlainMonthDay()Expérimental-
Crée un nouvel objet
Temporal.PlainMonthDayen fournissant directement les données sous-jacentes.
Méthodes statiques
Temporal.PlainMonthDay.from()-
Crée un nouvel objet
Temporal.PlainMonthDayà partir d'un autre objetTemporal.PlainMonthDay, d'un objet avec des propriétés mois et jour, ou d'une chaîne de caractères au format RFC 9557.
Propriétés d'instance
Ces propriétés sont définies sur Temporal.PlainMonthDay.prototype et partagées par toutes les instances Temporal.PlainMonthDay.
Temporal.PlainMonthDay.prototype.calendarId-
Retourne une chaîne de caractères représentant le calendrier utilisé pour interpréter la date ISO 8601 interne.
Temporal.PlainMonthDay.prototype.constructor-
La fonction constructeur qui a créé l'objet instance. Pour les instances
Temporal.PlainMonthDay, la valeur initiale est le constructeurTemporal.PlainMonthDay(). Temporal.PlainMonthDay.prototype.day-
Retourne un entier positif représentant l'indice du jour (commençant à 1) dans le mois de cette date, qui correspond au numéro affiché sur un calendrier. Dépend du calendrier. Généralement commence à 1 et est continu, mais pas toujours.
Temporal.PlainMonthDay.prototype.monthCode-
Retourne une chaîne de caractères spécifique au calendrier représentant le mois de cette date. Dépend du calendrier. En général, il s'agit de
Msuivi d'un numéro de mois à deux chiffres. Pour les mois intercalaires, il s'agit du code du mois précédent suivi deL. Si le mois intercalaire est le premier mois de l'année, le code estM00L. Temporal.PlainMonthDay.prototype[Symbol.toStringTag]-
La valeur initiale de la propriété
[Symbol.toStringTag]est la chaîne de caractères"Temporal.PlainMonthDay". Cette propriété est utilisée dansObject.prototype.toString().
Méthodes d'instance
Temporal.PlainMonthDay.prototype.equals()-
Retourne
truesi ce mois et ce jour est équivalent en valeur à un autre mois et jour (dans une forme convertible parTemporal.PlainMonthDay.from()), etfalsesinon. Ils sont comparés à la fois selon leurs valeurs de date et selon leurs calendriers. Temporal.PlainMonthDay.prototype.toJSON()-
Retourne une chaîne de caractères représentant ce mois et ce jour dans le même format RFC 9557 que l'appel à
toString(). Destiné à être appelé implicitement parJSON.stringify(). Temporal.PlainMonthDay.prototype.toLocaleString()-
Retourne une chaîne de caractères avec une représentation adaptée à la langue de ce mois et ce jour.
Temporal.PlainMonthDay.prototype.toPlainDate()-
Retourne un nouvel objet
Temporal.PlainDatereprésentant ce mois et ce jour et une année fournie dans le même système de calendrier. Temporal.PlainMonthDay.prototype.toString()-
Retourne une chaîne de caractères représentant ce mois et ce jour au format RFC 9557.
Temporal.PlainMonthDay.prototype.valueOf()-
Lève une
TypeError, ce qui empêche les instancesTemporal.PlainMonthDayd'être converties implicitement en primitives lorsqu'elles sont utilisées dans des opérations arithmétiques ou de comparaison. Temporal.PlainMonthDay.prototype.with()-
Retourne un nouvel objet
Temporal.PlainMonthDayreprésentant ce mois et ce jour avec certains champs remplacés par de nouvelles valeurs.
Exemples
>Obtenir la prochaine occurrence d'une fête
// Le Nouvel An chinois a lieu le 1/1 dans le calendrier chinois
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(
`Le prochain Nouvel An chinois est le ${nextCNY.withCalendar("iso8601").toLocaleString()}`,
);
Spécifications
| Spécification |
|---|
| Temporal> # sec-temporal-plainmonthday-objects> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Temporal - L'objet
Temporal.PlainDate - L'objet
Temporal.PlainYearMonth