Spec-Zone.ru › JavaScript

Temporal.PlainDate.prototype.eraYear

Базовый уровень Ограниченная доступность

Эта функция не является Базовым уровнем, потому что она не работает в некоторых из наиболее широко используемых браузеров.

Свойство-аксессор eraYear экземпляров Temporal.PlainDate возвращает неотрицательное целое число, представляющее год этой даты в рамках эры, или undefined, если календарь не использует эры (например, ISO 8601). Индекс года обычно начинается с 1 (что более распространено) или 0, а годы в эре могут уменьшаться со временем (например, Григорианский до н.э.). era и eraYear вместе однозначно идентифицируют год в календаре, так же, как и year. Оно зависит от календаря.

В отличие от year, era и eraYear могут меняться в середине календарного года. Например, в Японии эра Рэйва началась 1 мая 2019 года, поэтому даты с 2019-01-01 по 2019-04-30 имеют { era: "heisei", eraYear: 31 }, а даты с 2019-05-01 и далее имеют { era: "reiwa", eraYear: 1 }, но year всегда равен 2019 (поскольку японский календарь использует год ISO 8601 в качестве арифметического года).

Для получения дополнительной информации о значениях era и eraYear для разных календарей см. свойство era.

Сет-аксессор eraYear — это undefined. Вы не можете изменить это свойство напрямую. Используйте метод with() для создания нового объекта Temporal.PlainDate с желаемым новым значением.

Примеры

Использование eraYear

const date = Temporal.PlainDate.from("2021-07-01"); // ISO 8601 calendar
console.log(date.eraYear); // undefined

const date2 = Temporal.PlainDate.from("2021-07-01[u-ca=gregory]");
console.log(date2.eraYear); // 2021

const date3 = Temporal.PlainDate.from("-002021-07-01[u-ca=gregory]");
console.log(date3.eraYear); // 2022; 0000 is used for the year 1 BC

const date4 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
console.log(date4.eraYear); // 3

Изменение eraYear

Вы можете установить eraYear только для календарей, которые их поддерживают. Например, календарь ISO 8601 не имеет эр. Обратите внимание, что вы должны предоставить era и eraYear вместе.

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]

Спецификации

Спецификация
Temporal
# sec-get-temporal.plaindate.prototype.erayear

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
eraYear
144
144
139
128
предварительная версия
144
139
95
Нет
Нет
144
Нет
1.4.0
2.7
26.0.0

Смотрите также

  • Temporal.PlainDate
  • Temporal.PlainDate.prototype.with()
  • Temporal.PlainDate.prototype.add()
  • Temporal.PlainDate.prototype.subtract()
  • Temporal.PlainDate.prototype.year
  • Temporal.PlainDate.prototype.era

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/eraYear

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API