Объект Date
позволяет создавать, сравнивать и форматировать дату и время. Используется для отображения текущего времени, вычисления интервалов и работы с таймзонами в веб-приложениях.
Доступно в Baseline в статусе «Widely Available» с 2018-01-29
Создание даты
Сегодня вам бесплатно доступен тренажёр по HTML и CSS.
Объект Date
можно создать разными способами:
const now = new Date(); // текущая дата и время
const fromString = new Date('2024-12-25T09:00:00'); // по ISO-строке
const fromComponents = new Date(2024, 11, 25, 9, 0);
// 25 декабря 2024, 09:00 — обратите внимание: месяц от 0 до 11
const fromMilliseconds = new Date(1700000000000);
// по миллисекундам от начала эпохи Unix
Получение компонентов даты
Вы можете получить отдельные части даты: год, месяц, день, часы и прочее.
const d = new Date();
console.log(d.getFullYear()); // 2024
console.log(d.getMonth()); // 0–11 (январь = 0)
console.log(d.getDate()); // число месяца
console.log(d.getDay()); // день недели (0 = воскресенье)
console.log(d.getHours()); // часы
console.log(d.getMinutes()); // минуты
console.log(d.getSeconds()); // секунды
Форматирование даты
Удобный способ показать дату в нужной локали — использовать toLocaleString()
и его варианты:
const d = new Date();
console.log(d.toLocaleString()); // вся дата и время
console.log(d.toLocaleDateString()); // только дата
console.log(d.toLocaleTimeString()); // только время
console.log(d.toLocaleString('ru-RU', {
weekday: 'long', year: 'numeric', month: 'long', day: 'numeric'
}));
// Пример: "понедельник, 25 декабря 2024 г."
Изменение даты
Можно менять любую часть даты через set*
методы:
const d = new Date();
d.setFullYear(2030);
d.setMonth(6); // июль
d.setDate(15);
d.setHours(10);
d.setMinutes(30);
console.log(d.toString()); // изменённая дата
Сравнение и разница между датами
Объекты Date
можно сравнивать и вычитать друг из друга:
const start = new Date('2024-01-01');
const end = new Date('2024-12-31');
const diffMs = end - start;
const diffDays = diffMs / (1000 * 60 * 60 * 24);
console.log(`Между датами ${diffDays} дней`);
Работа с UTC и таймзонами
По умолчанию Date
работает в локальном времени. Но можно получить/задать UTC-варианты:
const d = new Date();
console.log(d.getHours()); // локальное время
console.log(d.getUTCHours()); // время по UTC
Советы по работе с Date
- Месяцы считаются с нуля: январь — 0, декабрь — 11.
- Для надёжной работы с датами используйте ISO-строки и UTC-варианты, особенно если данные идут с сервера.
- Для сложных вычислений лучше использовать библиотеку
date-fns
илиLuxon
.
Объект Date
— это базовый инструмент JavaScript для работы с временными данными. Он универсален, но требует внимательности в нюансах: месяцы, таймзоны, локализация. Разобравшись, вы сможете точно управлять датами без сторонних библиотек.
Больше обзоров веб-функций — в телеграм-канале HTML Academy.
Нашли ошибку или опечатку? Напишите нам.