Метод Info.eras

Метод Info.eras в библиотеке Luxon предоставляет доступ к локализованным названиям эпох (eras), используемым в календарных системах. Под эпохой понимается крупный исторический период, применяемый в датах различных культур и локалей, например «до нашей эры» и «нашей эры» в григорианском календаре.

Внутри Luxon этот метод относится к статическому объекту Info и не зависит от конкретного экземпляра DateTime, поскольку работает с глобальными языковыми и календарными данными, а не с конкретными датами.


Сигнатура метода

Info.eras(length?: string, options?: Object): string[]

Метод возвращает массив строк, содержащий локализованные названия эпох.


Параметры

length

Определяет формат возвращаемых названий эпох.

Поддерживаемые значения:

  • “long” — полные формы
  • “short” — сокращённые формы
  • “narrow” — минималистичные обозначения

Различия проявляются в зависимости от локали:

  • английская локаль: "Before Christ", "Anno Domini"
  • сокращённая: "BC", "AD"
  • узкая: "B", "A"

options

Объект конфигурации, содержащий параметры локали.

Основное поле:

  • locale — строка, задающая язык и регион (например, "en", "ru", "fr")

Если locale не указан, используется системная локаль окружения.


Возвращаемое значение

Метод возвращает массив строк, содержащий возможные значения эпох для выбранной локали и формата.

Обычно массив состоит из двух элементов:

["BC", "AD"]

или для других локалей:

["Before Christ", "Anno Domini"]

Поведение в разных локалях

Значения эпох зависят от международных стандартов CLDR, которые использует Luxon.

Английская локаль

Info.eras("long", { locale: "en" })

Результат:

["Before Christ", "Anno Domini"]

Русская локаль

Info.eras("long", { locale: "ru" })

Результат может быть представлен в виде:

["до н. э.", "н. э."]

Сокращённый формат

Info.eras("short", { locale: "en" })

Результат:

["BC", "AD"]

Минимальный формат

Info.eras("narrow", { locale: "en" })

Результат:

["B", "A"]

Примеры использования

Получение всех эпох по умолчанию

import { Info } from "luxon";

const eras = Info.eras();
console.log(eras);

Результат зависит от системной локали, чаще всего:

["BC", "AD"]

Явное указание длинного формата

import { Info } from "luxon";

const eras = Info.eras("long", { locale: "en" });
console.log(eras);

Вывод:

["Before Christ", "Anno Domini"]

Использование в интерфейсной логике

Метод применяется при построении календарных компонентов, где требуется динамическая локализация подписей эпох:

import { Info } from "luxon";

function getEraLabel(value, locale) {
  const labels = Info.eras("short", { locale });
  return value === "BC" ? labels[0] : labels[1];
}

Особенности реализации

Независимость от даты

Метод не принимает и не учитывает даты. Он не связан с DateTime и не требует временных значений для вычислений.


Статическая природа данных

Возвращаемые значения формируются на основе таблиц локализации CLDR, встроенных в Luxon. Это означает:

  • отсутствие сетевых запросов
  • стабильность результата
  • предсказуемость между версиями локалей

Поддержка локалей

Поддерживаются все локали, доступные в Luxon через Intl API. Если локаль не содержит специфичных значений эпох, используется fallback на английские значения.


Сравнение форматов

Формат Пример (en) Характеристика
long Before Christ Полное название
short BC Сокращение
narrow B Минимальное обозначение

Роль в экосистеме Luxon

Info.eras относится к группе методов информационного уровня:

  • Info.weekdays
  • Info.months
  • Info.meridiems
  • Info.eras

Все они выполняют задачу предоставления локализованных календарных данных без привязки к конкретным моментам времени.


Использование в форматировании дат

В связке с DateTime метод применяется для построения пользовательских представлений исторических дат:

import { DateTime, Info } from "luxon";

const dt = DateTime.fromObject({ year: -44 });

const era = dt.year < 0
  ? Info.eras("short", { locale: "en" })[0]
  : Info.eras("short", { locale: "en" })[1];

console.log(era);

Ограничения

  • не предоставляет расширенных исторических эпох (например, геологических или культурных периодов)
  • ограничен стандартами календарной системы
  • всегда возвращает фиксированный набор значений (обычно две эпохи)