Форматирование даты в JavaScript
Объект Date хранит дату и время, но для вывода в интерфейсе их обычно нужно привести к понятному виду. Например, вместо стандартной строки из консоли показать 12.07.2026 или 12 июля 2026 г..
const date = new Date(2026, 6, 12, 9, 5);
Быстрый формат даты
Для отображения даты пользователю подойдет метод toLocaleDateString(). Первым аргументом передают локаль - правила языка и региона для вывода даты.
const formatted = date.toLocaleDateString('ru-RU');
console.log(formatted); // 12.07.2026
Для английской версии интерфейса можно передать другую локаль.
const formatted = date.toLocaleDateString('en-US');
console.log(formatted); // 7/12/2026
Настройка формата
Вторым аргументом передают объект с настройками. Так можно вывести название месяца, а не его номер.
const formatted = date.toLocaleDateString('ru-RU', {
day: 'numeric',
month: 'long',
year: 'numeric',
});
console.log(formatted); // 12 июля 2026 г.
Аналогично можно добавить день недели.
const formatted = date.toLocaleDateString('ru-RU', {
weekday: 'long',
day: 'numeric',
month: 'long',
});
console.log(formatted); // воскресенье, 12 июля
Дата и время
Если нужно вывести дату вместе со временем, используйте toLocaleString().
const formatted = date.toLocaleString('ru-RU', {
day: '2-digit',
month: '2-digit',
year: 'numeric',
hour: '2-digit',
minute: '2-digit',
});
console.log(formatted); // 12.07.2026, 09:05
Фиксированный формат
Локальный формат удобен для интерфейса, но не подходит, когда нужен один и тот же результат для всех пользователей. Например, для строки в формате ГГГГ-ММ-ДД дату можно собрать вручную.
function formatDate(date) {
const day = String(date.getDate()).padStart(2, '0');
const month = String(date.getMonth() + 1).padStart(2, '0');
const year = date.getFullYear();
return `${year}-${month}-${day}`;
}
console.log(formatDate(date)); // 2026-07-12
Здесь padStart() добавляет ноль перед однозначным днем или месяцем. Методы getDate(), getMonth() и getFullYear() возвращают значения в часовом поясе компьютера.
Метод toISOString() тоже возвращает дату в формате ISO, но работает по UTC. Используйте его, когда данные должны быть записаны именно в UTC.