getTime(): временная метка и недопустимая дата
GetTime возвращает число миллисекунд от начала эпохи Unix для объекта Date. Оно удобно для сравнения моментов времени, но не является готовым представлением календарной даты для пользователя.
Назначение
GetTime возвращает число миллисекунд от начала эпохи Unix для объекта Date. Оно удобно для сравнения моментов времени, но не является готовым представлением календарной даты для пользователя.
Как это работает
Один момент можно записать с разными часовыми смещениями и получить одинаковую метку. Для недопустимой даты метод возвращает NaN. В примере используются строки ISO с явно указанной зоной.
Пример
const utc = new Date("2026-01-01T00:00:00Z");
const offset = new Date("2026-01-01T03:00:00+03:00");
console.assert(utc.getTime() === offset.getTime());
console.assert(new Date(0).getTime() === 0);
console.assert(Number.isNaN(new Date("not-a-date").getTime()));
console.log(utc.getTime());
Что должно получиться
Две разные записи времени описывают один момент. Нулевая метка остаётся корректным значением, а ошибочный ввод выявляется через Number.isNaN.
Граница применения и частая ошибка
Не проверяйте метку через if(timestamp): ноль допустим. Не путайте миллисекунды JavaScript с секундами некоторых API. Для измерения краткой длительности процесса лучше монотонный performance.now, а для календарного отображения нужен формат с выбранной зоной.
Самостоятельная проверка
Сравните даты с разными явными смещениями и переведите миллисекунды в секунды осознанно. Проверьте пустой и неверный ввод до вызова toISOString. Укажите единицы временной метки в контракте вашего API.
Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.