Форматирование даты в 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.