Метод Info.months в библиотеке Luxon предназначен для
получения массива названий месяцев с учётом локали, формата отображения
и особенностей календарной системы. Он относится к статическому объекту
Info, который предоставляет справочные данные о датах и
времени, не зависящие от конкретного момента.
Основная задача метода — стандартизированное получение списка месяцев для интерфейсов, генераторов дат, календарных компонентов и любых систем, где требуется локализованное отображение временных единиц.
Info.months(format?, options?)
format — строка, определяющая стиль названий
месяцевoptions — объект конфигурации локализации и системы
нумерацииВозвращаемое значение — массив строк из 12 элементов, соответствующих месяцам от января до декабря в заданной локали.
Метод поддерживает несколько стандартных форматов:
"long" — полные названия месяцев"short" — сокращённые формы"narrow" — минимальные обозначения
(обычно одна-две буквы)Info.months("long")
Результат:
[
"January", "February", "March", "April",
"May", "June", "July", "August",
"September", "October", "November", "December"
]
Info.months("short")
[
"Jan", "Feb", "Mar", "Apr",
"May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec"
]
Info.months("narrow")
[
"J", "F", "M", "A",
"M", "J", "J", "A",
"S", "O", "N", "D"
]
localeОдним из ключевых механизмов метода является поддержка локализации
через параметр locale в options.
Info.months("long", { locale: "fr" })
Результат:
[
"janvier", "février", "mars", "avril",
"mai", "juin", "juillet", "août",
"septembre", "octobre", "novembre", "décembre"
]
Локализация влияет не только на перевод названий, но и на правила написания, регистр и особенности сокращений, которые соответствуют культурным нормам выбранного языка.
Второй важный параметр — numberingSystem, позволяющий
учитывать альтернативные системы записи чисел, используемые в разных
регионах.
Info.months("short", { numberingSystem: "latn" })
Хотя для месяцев это редко влияет на результат, параметр сохраняется
для унификации API и совместимости с другими методами
Info.
Метод Info.months часто используется вместе с объектами
DateTime, которые предоставляют конкретные даты и время в
Luxon.
Пример сопоставления индекса месяца:
import { DateTime, Info } from "luxon";
const dt = DateTime.local();
const monthIndex = dt.month; // 1–12
const months = Info.months("long");
const currentMonthName = months[monthIndex - 1];
Такой подход позволяет вручную управлять отображением месяца, например, в пользовательских интерфейсах без использования встроенного форматирования.
Возвращаемый массив всегда фиксирован:
0 соответствует январю11 соответствует декабрюПорядок не зависит от локали и не изменяется при смене формата отображения.
Info.months применяется в системах, где требуется
отделение логики данных от представления:
Пример генерации списка опций:
const months = Info.months("long", { locale: "de" });
const options = months.map((name, index) => ({
value: index + 1,
label: name
}));
Разные форматы могут значительно отличаться в зависимости от языка:
short обычно состоит из трёх
буквnarrow может совпадать с первой
буквой или быть неоднозначнымЭто связано с тем, что библиотека Luxon использует ICU (International Components for Unicode) для получения корректных локализованных данных.
Формирование локализованного календарного заголовка:
const { Info } = require("luxon");
function getCalendarHeader(locale) {
const months = Info.months("long", { locale });
const now = new Date().getMonth();
return months[now];
}
Создание многоязычного интерфейса:
const locales = ["en", "es", "ru"];
const calendarMonths = locales.reduce((acc, loc) => {
acc[loc] = Info.months("short", { locale: loc });
return acc;
}, {});
Если параметр locale не задан, используется глобальная
конфигурация библиотеки или среда выполнения:
Info.months("long")
Результат зависит от системных настроек, что может приводить к различиям между серверной и клиентской средой при отсутствии явного указания локали.
Метод относится к стабильной части API и предназначен для долгосрочного использования без изменений сигнатуры. Его поведение строго регламентировано спецификацией ICU, что обеспечивает предсказуемость результата между версиями среды выполнения и платформами.