Как получить timestamp в JavaScript: 5 простых способов

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Как получить timestamp в JavaScript: 5 способов с примерами

Каждый разработчик хотя бы раз сталкивался с задачей: нужно сохранить момент времени, сравнить даты или отправить данные на сервер. И тут на помощь приходит timestamp в JavaScript — универсальная метка времени, которую понимают все системы. В этом руководстве я покажу 5 проверенных способов получить timestamp, разберу их плюсы и минусы, а также отвечу на популярные вопросы из Stack Overflow.

Если вы когда-нибудь гуглили "how do I get a timestamp in JavaScript" — вы не одиноки. Тысячи разработчиков ищут этот ответ каждый день. Давайте раз и навсегда разберёмся в теме.

Что такое timestamp и зачем он нужен?

Timestamp (метка времени) — это количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 UTC. Эта дата называется Unix epoch. Зачем это нужно?

  • Универсальность: timestamp не зависит от часового пояса — это чистый UTC.
  • Удобство хранения: одно число вместо строки даты.
  • Сравнение: легко вычислить разницу между двумя моментами времени.
  • Совместимость: timestamp понимают все языки программирования и базы данных.

Теперь перейдём к самому интересному — как его получить в JavaScript.

Способ 1: Date.now() — самый быстрый и лаконичный

Это мой любимый метод. Date.now() возвращает timestamp в миллисекундах прямо сейчас. Никаких лишних объектов, никаких конструкторов — просто число.

// Получаем текущий timestamp
const currentTimestamp = Date.now();
console.log(currentTimestamp); // 1712345678901

// Можно сразу использовать для замеров
const start = Date.now();
// ... какой-то код ...
const end = Date.now();
console.log(`Выполнение заняло ${end - start} мс`);

Плюсы:

  • Максимальная производительность (нет создания объектов)
  • Читаемый и короткий код
  • Поддерживается во всех современных браузерах и Node.js

Минусы:

  • Возвращает только текущий момент (нельзя задать дату)

Используйте Date.now(), когда вам нужен текущий timestamp в JavaScript без лишних телодвижений.

Способ 2: new Date().getTime() — классика жанра

Этот метод знаком каждому, кто работал с JavaScript больше года. Создаём объект Date и вызываем getTime().

// Получаем timestamp через объект Date
const timestamp = new Date().getTime();
console.log(timestamp); // 1712345678901

// Можно получить timestamp для конкретной даты
const specificDate = new Date('2024-12-31T23:59:59');
const specificTimestamp = specificDate.getTime();
console.log(specificTimestamp); // 1735689599000

Плюсы:

  • Можно получить timestamp для произвольной даты
  • Обратная совместимость (работает в старых браузерах)
  • Интуитивно понятный синтаксис

Минусы:

  • Создаёт лишний объект (чуть медленнее, чем Date.now())

Выбирайте new Date().getTime(), когда нужно получить метку времени JavaScript для конкретной даты или работать с разными моментами времени.

Способ 3: +new Date() — хак с унарным плюсом

Мало кто знает, но унарный плюс превращает объект Date в число — его timestamp. Это работает благодаря принудительному преобразованию типов.

// Короткий, но неочевидный способ
const timestamp = +new Date();
console.log(timestamp); // 1712345678901

// Можно даже без скобок
const timestamp2 = +new Date;
console.log(timestamp2); // 1712345678902

Плюсы:

  • Очень короткая запись
  • Выглядит круто на собеседованиях 😎

Минусы:

  • Снижает читаемость кода
  • Неочевидно для новичков
  • Создаёт объект (как и способ 2)

Я не рекомендую использовать этот метод в продакшн-коде. Но знать о нём полезно — вдруг встретите в чужом проекте.

Способ 4: Date.parse() — для строковых дат

Если у вас есть строка с датой, Date.parse() превратит её в timestamp. Метод анализирует строку и возвращает количество миллисекунд.

// Парсим строковую дату
const timestamp = Date.parse('2024-06-15T10:30:00Z');
console.log(timestamp); // 1718447400000

// Работает с разными форматами
console.log(Date.parse('2024/06/15')); // 1718409600000
console.log(Date.parse('June 15, 2024')); // 1718409600000

Плюсы:

  • Удобно для конвертации строк в timestamp
  • Понимает много форматов дат

Минусы:

  • Разное поведение в старых браузерах (IE < 9)
  • Не все строки парсятся корректно (зависит от локали)

Используйте Date.parse(), когда получаете дату из API или базы данных в виде строки и вам нужен unix timestamp JavaScript.

Способ 5: performance.now() — для высокоточных замеров

Этот метод не совсем про timestamp, но о нём часто спрашивают на Stack Overflow. performance.now() возвращает время с момента старта страницы с точностью до микросекунд.

// Высокоточный замер времени
const start = performance.now();
// ... сложные вычисления ...
const end = performance.now();
console.log(`Точное время: ${(end - start).toFixed(3)} мс`);

// Получить timestamp с микросекундами
const preciseNow = Date.now() + (performance.now() % 1);
console.log(preciseNow); // 1712345678901.123

Плюсы:

  • Точность до микросекунд (0.001 мс)
  • Не зависит от системного времени (нельзя подкрутить)
  • Идеально для бенчмарков

Минусы:

  • Не является timestamp в классическом смысле
  • Доступен только в современных браузерах

Применяйте performance.now() для профилирования кода, а не для хранения меток времени.

Какой способ выбрать? Сравнительная таблица

Чтобы вам было проще ориентироваться, вот краткое рез

Блоги

Рекомендаций по книгам