Библиотека Day.js поддерживает локализацию названий месяцев, дней недели, форматов дат и других языковых особенностей через систему locale. По умолчанию используется английская локаль, поэтому для отображения русских названий требуется подключение соответствующего языкового пакета.
import dayjs from 'dayjs'
import 'dayjs/locale/ru'
dayjs.locale('ru')
console.log(dayjs().format('MMMM'))
// май
После установки локали форматирование автоматически начинает использовать русские названия месяцев и дней недели.
Токен MMMM выводит полное название месяца.
import dayjs from 'dayjs'
import 'dayjs/locale/ru'
dayjs.locale('ru')
const date = dayjs('2025-03-15')
console.log(date.format('MMMM'))
// март
Токен MMM выводит сокращённое название месяца.
console.log(date.format('MMM'))
// мар.
Токен MM выводит номер месяца с ведущим нулём.
console.log(date.format('MM'))
// 03
Токен M выводит номер без ведущего нуля.
console.log(date.format('M'))
// 3
Для получения списка месяцев удобно использовать цикл.
import dayjs from 'dayjs'
import 'dayjs/locale/ru'
dayjs.locale('ru')
const months = []
for (let i = 0; i < 12; i++) {
months.push(dayjs().month(i).format('MMMM'))
}
console.log(months)
Результат:
[
'январь',
'февраль',
'март',
'апрель',
'май',
'июнь',
'июль',
'август',
'сентябрь',
'октябрь',
'ноябрь',
'декабрь'
]
Токен dddd выводит полное название дня недели.
const date = dayjs('2025-03-15')
console.log(date.format('dddd'))
// суббота
Токен ddd выводит сокращённое название.
console.log(date.format('ddd'))
// сб
Токен dd выводит двухсимвольное сокращение.
console.log(date.format('dd'))
// Сб
import dayjs from 'dayjs'
import 'dayjs/locale/ru'
dayjs.locale('ru')
const days = []
for (let i = 0; i < 7; i++) {
days.push(dayjs().day(i).format('dddd'))
}
console.log(days)
Результат:
[
'воскресенье',
'понедельник',
'вторник',
'среда',
'четверг',
'пятница',
'суббота'
]
import dayjs from 'dayjs'
import 'dayjs/locale/en'
dayjs.locale('en')
console.log(dayjs().format('MMMM'))
// May
console.log(dayjs().format('dddd'))
// Friday
import 'dayjs/locale/de'
dayjs.locale('de')
console.log(dayjs().format('MMMM'))
// Mai
console.log(dayjs().format('dddd'))
// Freitag
import 'dayjs/locale/fr'
dayjs.locale('fr')
console.log(dayjs().format('MMMM'))
// mai
Метод locale() можно применять к отдельному экземпляру
даты.
import dayjs from 'dayjs'
import 'dayjs/locale/ru'
import 'dayjs/locale/en'
const date = dayjs('2025-06-10')
console.log(date.locale('ru').format('MMMM'))
// июнь
console.log(date.locale('en').format('MMMM'))
// June
Глобальная локаль при этом не изменяется.
Названия месяцев и дней недели можно комбинировать с другими токенами.
const date = dayjs('2025-12-25')
console.log(date.format('dddd, D MMMM YYYY'))
// четверг, 25 декабря 2025
Русская локаль использует разные формы месяца в зависимости от формата.
console.log(date.format('MMMM'))
// декабрь
console.log(date.format('D MMMM'))
// 25 декабря
В первом случае используется именительный падеж, во втором — родительный.
Плагин LocaleData предоставляет доступ к массивам
месяцев и дней недели без ручного перебора.
import dayjs from 'dayjs'
import localeData from 'dayjs/plugin/localeData'
import 'dayjs/locale/ru'
dayjs.extend(localeData)
dayjs.locale('ru')
console.log(dayjs.months())
Результат:
[
'январь',
'февраль',
'март',
'апрель',
'май',
'июнь',
'июль',
'август',
'сентябрь',
'октябрь',
'ноябрь',
'декабрь'
]
console.log(dayjs.monthsShort())
Результат:
[
'янв.',
'февр.',
'март',
'апр.',
'май',
'июнь',
'июль',
'авг.',
'сент.',
'окт.',
'нояб.',
'дек.'
]
console.log(dayjs.weekdays())
console.log(dayjs.weekdaysShort())
console.log(dayjs.weekdaysMin())
Метод month() использует нумерацию с нуля.
| Значение | Месяц |
|---|---|
| 0 | январь |
| 1 | февраль |
| 2 | март |
| 3 | апрель |
| 4 | май |
| 5 | июнь |
| 6 | июль |
| 7 | август |
| 8 | сентябрь |
| 9 | октябрь |
| 10 | ноябрь |
| 11 | декабрь |
Пример:
console.log(dayjs().month(0).format('MMMM'))
// январь
Метод day() также использует числовые индексы.
| Значение | День |
|---|---|
| 0 | воскресенье |
| 1 | понедельник |
| 2 | вторник |
| 3 | среда |
| 4 | четверг |
| 5 | пятница |
| 6 | суббота |
Пример:
console.log(dayjs().day(1).format('dddd'))
// понедельник
import dayjs from 'dayjs'
import 'dayjs/locale/ru'
import 'dayjs/locale/en'
dayjs.locale('ru')
console.log(dayjs().format('MMMM'))
// май
dayjs.locale('en')
console.log(dayjs().format('MMMM'))
// May
Day.js позволяет переопределять названия месяцев и дней недели.
import dayjs from 'dayjs'
import updateLocale from 'dayjs/plugin/updateLocale'
dayjs.extend(updateLocale)
dayjs.updateLocale('en', {
months: [
'Jan_Custom',
'Feb_Custom',
'Mar_Custom',
'Apr_Custom',
'May_Custom',
'Jun_Custom',
'Jul_Custom',
'Aug_Custom',
'Sep_Custom',
'Oct_Custom',
'Nov_Custom',
'Dec_Custom'
]
})
console.log(dayjs('2025-05-01').format('MMMM'))
// May_Custom
Названия месяцев и дней недели часто применяются при создании календарей, datepicker-компонентов и систем расписаний.
Пример генерации заголовка календаря:
const current = dayjs()
const title = current.format('MMMM YYYY')
console.log(title)
// май 2025
const weekdays = dayjs.weekdaysMin()
weekdays.forEach(day => {
console.log(day)
})
Результат:
Вс
Пн
Вт
Ср
Чт
Пт
Сб
const date = dayjs('2025-08-18')
console.log(
date.format('dddd, D MMMM YYYY года')
)
Результат:
понедельник, 18 августа 2025 года