Как отформатировать дату
Короткий ответ
Метод toLocaleDateString() форматирует дату по правилам указанного языка. Месяцы в конструкторе Date считаются с нуля, поэтому 2 — это март:
const date = new Date(2025, 2, 15);
console.log(date.toLocaleDateString('ru-RU'));Результат:
15.03.2025Название месяца
Второй аргумент управляет тем, какие части даты показать и как:
const date = new Date(2025, 2, 15);
console.log(date.toLocaleDateString('en-US', { day: 'numeric', month: 'long', year: 'numeric' }));Результат:
March 15, 2025Свой формат
Части даты можно получить по отдельности и собрать строку вручную:
const date = new Date(2025, 2, 5);
const day = String(date.getDate()).padStart(2, '0');
const month = String(date.getMonth() + 1).padStart(2, '0');
console.log(date.getFullYear() + '-' + month + '-' + day);Результат:
2025-03-05Частая ошибка
getMonth() считает месяцы с нуля, поэтому при форматировании прибавляйте единицу. А getYear() — старый метод, который возвращает год минус 1900:
const date = new Date(2025, 2, 5);
console.log(date.getMonth(), date.getMonth() + 1);
console.log(date.getYear(), date.getFullYear());Результат:
2 3
125 2025Функции из этого ответа
- Date.prototype.toLocaleDateString — Форматирует дату без времени по правилам языка.
- Intl.DateTimeFormat — Форматирует даты и время по правилам языка.
- String.prototype.padStart — Дополняет строку слева до нужной длины.