Встроенный объект Date в JavaScript представляет единичный момент времени с миллисекундной точностью, отсчитываемый от эпохи Unix (1 января 1970 года).
Создание экземпляров Date
const now = new Date(); // Текущий момент времени
const epoch = new Date(1730000000000); // Из таймстампа в миллисекундах
const iso = new Date('2026-10-25T14:30:00Z'); // Из строки формата ISO 8601
const custom = new Date(2026, 9, 25, 14, 30); // Год, месяц (0 - январь), день, часы, минуты
Методы получения компонентов даты (Getters)
| Метод | Локальное время | Аналог в формате UTC |
|---|---|---|
getFullYear() |
4-значный год | getUTCFullYear() |
getMonth() |
Индекс месяца (от 0 до 11) | getUTCMonth() |
getDate() |
День месяца (от 1 до 31) | getUTCDate() |
getDay() |
День недели (0 - воскресенье) | getUTCDay() |
getHours() |
Часы (от 0 до 23) | getUTCHours() |
getMinutes() |
Минуты (от 0 до 59) | getUTCMinutes() |
getSeconds() |
Секунды (от 0 до 59) | getUTCSeconds() |
getMilliseconds() |
Миллисекунды (от 0 до 999) | getUTCMilliseconds() |
getTime() |
Таймстамп эпохи Unix в миллисекундах | (same timestamp) |
Арифметика дат и вычисление разницы во времени
// Прибавить 7 дней к дате
const target = new Date();
target.setDate(target.getDate() + 7);
// Разница между двумя датами в днях
const d1 = new Date('2026-10-01');
const d2 = new Date('2026-10-25');
const diffMs = d2 - d1;
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24)); // => 24
Форматирование и вывод дат
const date = new Date('2026-10-25T14:30:00Z');
date.toISOString(); // "2026-10-25T14:30:00.000Z"
date.toDateString(); // "Sun Oct 25 2026"
date.toTimeString(); // "14:30:00 GMT+0000"
date.toLocaleDateString(); // e.g. "10/25/2026"