Spec-Zone.ru › JavaScript

Date.now()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Статический метод Date.now() возвращает количество миллисекунд, прошедших с эпохи, которая определяется как полночь 1 января 1970 года, UTC.

Попробуйте

// This example takes 2 seconds to run
const start = Date.now();

console.log("starting timer...");
// Expected output: "starting timer..."

setTimeout(() => {
  const ms = Date.now() - start;

  console.log(`seconds elapsed = ${Math.floor(ms / 1000)}`);
  // Expected output: "seconds elapsed = 2"
}, 2000);

Синтаксис

Date.now()

Параметры

Нет.

Возвращаемое значение

Число, представляющее временную метку текущего времени в миллисекундах.

Описание

Уменьшенная точность времени

Для защиты от атак по времени и фингерпринтинга точность Date.now() может быть уменьшена в зависимости от настроек браузера.

Временная метка всегда является целым числом миллисекунд, поэтому ее разрешение ограничено 1 мс во всех контекстах. Это уже удовлетворяет определенным базовым потребностям в безопасности и конфиденциальности.

В Firefox предпочтение privacy.reduceTimerPrecision включено по умолчанию. При стандартных настройках временная метка имеет разрешение 1 мс. Если включено privacy.resistFingerprinting, интервал округления составляет 16,667 мс или интервал, настроенный privacy.resistFingerprinting.reduceTimerPrecision.microseconds, в зависимости от того, что больше. Окончательный результат округляется до целого числа.

Например, в Firefox возможны следующие значения:

// Reduced time precision (1 ms) with default settings
Date.now();
// Might be:
// 1519211809934
// 1519211810363
// 1519211811671
// …

// Reduced time precision with `privacy.resistFingerprinting` enabled
Date.now();
// Might be:
// 1519129853489
// 1519129853506
// 1519129853522
// …

Примеры

Измерение прошедшего времени

Вы можете использовать Date.now() для получения текущего времени в миллисекундах, а затем вычесть предыдущее время, чтобы узнать, сколько времени прошло между двумя вызовами.

const start = Date.now();
doSomeLongRunningProcess();
console.log(`Time elapsed: ${Date.now() - start} ms`);

Для более сложных сценариев вы можете вместо этого использовать API производительности.

Спецификации

Спецификация
Спецификация языка ECMAScript® 2027
# sec-date.now

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS Bun Deno Node.js
now
1
12
1
10.5
4
18
4
14
4
1.0
4.4
4
1.0.0
1.0
0.10.0

См. также

  • Polyfill для Date.now в core-js
  • Performance.now()
  • console.time()
  • console.timeEnd()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API