Date.now()

Статичний метод Date.now() вертає кількість мілісекунд від 1 січня 1970 року о 00:00:00 за UTC.

Синтаксис

var timeInMs = Date.now();

Вертає

Число, що позначає кількість мілісекунд від початку епохи за часом Unix.

Запасний варіант (поліфіл)

Цей метод було стандартизовано 5-им випуском ECMA-262. Для рушіїв, що не мають підтримки цього метода, стане в пригоді таке рішення:

if (!Date.now) {
  Date.now = function now() {
    return new Date().getTime();
  };
}

Приклади

Зменшена точність часу

Для захисту від атак за часом чи за цифровими відбитками, точність Date.now() може бути округлена, в залежності від налаштувань переглядача.
У Firefox параметр privacy.reduceTimerPrecision за замовчуванням увімкнений та дорівнює 20 мс у Firefox 59; у 60 він дорівнюватиме 2 мс.

// зменшена точність часу (2 мс) у Firefox 60
Date.now()
// 1519211809934
// 1519211810362
// 1519211811670
// ...

// зменшена точність часу з увімкненим параметром `privacy.resistFingerprinting`
Date.now();
// 1519129853500
// 1519129858900
// 1519129864400
// ...

У Firefox ви також можете увімкнути privacy.resistFingerprinting, точність дорівнюватиме або 100 мс, або значенню privacy.resistFingerprinting.reduceTimerPrecision.microseconds, в залежності від того, що більше.

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

Специфікація
ECMAScript (ECMA-262)
The definition of 'Date.now' in that specification.

Підтримка веб-переглядачами

BCD tables only load in the browser

Див. також

  • Performance.now() — вертає поточний час із роздільною здатністю вище мілісекунди для програмного вимірювання швидкодії веб-сторінки
  • console.time() / console.timeEnd()