🧱 Суть
В JavaScript дата внутри объекта Date хранится не как строка, а как количество миллисекунд с 1 января 1970 года.
Это называется Unix эпоха.
Например:
new Date(0);Результат:
Thu Jan 01 1970 00:00:00 GMT+0000Внутри:
0 миллисекунд от начала эпохиТо есть:
Date
↓
миллисекунды
↓
отображение даты
📦 Проблема
Часто кажется, что JavaScript хранит дату как:
"2025-04-08"Но это только формат отображения.
Реально:
Date → число → форматированиеПоэтому разные записи могут обозначать один момент времени:
1712563200000"2025-04-08T00:00:00.000Z"💻 Код
Получить текущее время:
Date.now();Результат:
миллисекундыНапример:
1712563200000Получить Unix timestamp:
Math.floor(Date.now() / 1000);Результат:
секундыЧто можно передать в Date
Миллисекунды:
new Date(0);ISO строку:
new Date('2025-04-08');Отдельные значения:
new Date(2025, 3, 8);Важно:
0 – январь
1 – февраль
2 – март
3 – апрельМесяцы начинаются с нуля.
🎯 Вывод
Dateвнутри хранит число миллисекунд.- Unix timestamp обычно хранится в секундах.
- ISO и локальные даты – это только представление.
- Для вычислений лучше использовать timestamp или объект
Date.