Temporal.PlainDate : propriété era
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
La propriété d'accesseur era des instances de Temporal.PlainDate 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. Elle dépend du calendrier. Pour le calendrier grégorien, il s'agit soit de "ce", soit de "bce".
Valeur
Tous les calendriers définis ont des ères entièrement définies par la spécification.
-
Les calendriers suivants ont une seule ère :
buddhist:"be"coptic:"am"ethioaa:"aa"hebrew:"am"indian:"shaka"persian:"ap"
-
Les calendriers suivants ont deux ères. L'une est l'ère de l'époque, dans laquelle
eraYearcommence à 1 et est identique àyear. L'autre est l'ère inverse, dans laquelleeraYearcommence également à 1 et est égal à1 - year(donceraYear: 1correspond à l'année0,eraYear: 2à l'année-1, etc.) :gregory: ère de l'époque"ce", ère inverse"bce"islamic-civil,islamic-tbla,islamic-umalqura: ère de l'époque"ah", ère inverse"bh"roc: ère de l'époque"roc", ère inverse"broc"
-
Le calendrier
ethiopica une ère"am"qui est l'ère de l'époque. Les années avant1appartiennent à l'ère"aa", donteraYearest égal àyear - 5500(donceraYear: -1000correspond à l'année-6500,eraYear: 1correspond à l'année-5499, jusqu'àeraYear: 5500comme année0). -
Le calendrier
japaneseajoute une ère pour chaque nouvel empereur, donc l'année et l'ère de sortie pour une date future peuvent ne pas correspondre à l'année et à l'ère d'entrée lorsque votre code s'exécute sur une version future du moteur, et nous ne les énumérerons pas ici. L'année de chaque ère commence à 1. C'est également le seul calendrier connu pour avoir des ères commençant au milieu d'une année, ce qui signifie que la mêmeyearpeut correspondre à différentes paires(era, eraYear)selon le mois et le jour.Attention : À partir d'octobre 2025, dans le calendrier
japanese, les dates antérieures au 23-10-1868 ISO (la date de début de l'année 1 Meiji) ne fonctionnent pas comme prévu dans les navigateurs de deux manières. Premièrement, CLDR avait la mauvaise date de début pour l'ère Meiji (angl.), ce qui fait que les implémentations du calendrier étendent l'ère Meiji plus loin dans le passé qu'elle ne l'était réellement. Deuxièmement, la prochaine proposition de l'ère et du code de mois Intl (angl.) définit que les dates antérieures au 01-01-1873 ISO devraient utiliser les ères grégoriennes, mais les navigateurs ont traditionnellement utilisé des approximations des ères japonaises antérieures à la place. Le calendrierjapanesea été adopté le 1er janvier 6 Meiji / 01-01-1873 ISO, donc ces problèmes n'affectent que les dates proleptiques. -
Les autres calendriers définis :
chinese,dangi,iso8601, n'utilisent pas d'ères et retournentundefined.
Le mutateur d'accesseur de era est undefined. Vous ne pouvez pas modifier cette propriété directement. Utilisez la méthode with() pour créer un nouvel objet Temporal.PlainDate avec la nouvelle valeur souhaitée. Lors de la définition des ères, les alias "ad" et "bc" sont également acceptés pour les ères "ce" et "bce" des calendriers gregory ou japanese.
Note :
Cette chaîne de caractères n'est pas destinée à être affichée aux utilisateurs. Utilisez toLocaleString() avec les options appropriées pour obtenir une chaîne de caractères localisée.
Exemples
>Utiliser la propriété era
const date = Temporal.PlainDate.from("2021-07-01"); // ISO 8601 calendar
console.log(date.era); // undefined
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=gregory]");
console.log(date2.era); // ce
const date3 = Temporal.PlainDate.from("-002021-07-01[u-ca=gregory]");
console.log(date3.era); // bce
const date4 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
console.log(date4.era); // reiwa
Changer la valeur de era
Vous ne pouvez définir era que pour les calendriers qui les prennent en charge. Par exemple, le calendrier ISO 8601 n'a pas d'ères. Notez que vous devez fournir era et eraYear ensemble.
const date = Temporal.PlainDate.from("2021-07-01[u-ca=gregory]");
const newDate = date.with({ era: "bc", eraYear: 100 });
console.log(newDate.toString()); // -000099-07-01[u-ca=gregory]
const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
const newDate2 = date2.with({ era: "meiji", eraYear: 1 });
console.log(newDate2.toString()); // 1868-07-01[u-ca=japanese]
Spécifications
| Spécification |
|---|
| Temporal> # sec-get-temporal.plaindate.prototype.era> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Temporal.PlainDate - La méthode
Temporal.PlainDate.prototype.with() - La méthode
Temporal.PlainDate.prototype.add() - La méthode
Temporal.PlainDate.prototype.subtract() - La propriété
Temporal.PlainDate.prototype.year - La propriété
Temporal.PlainDate.prototype.eraYear