Date.now()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Phương thức tĩnh Date.now() trả về số mili giây đã trôi qua kể từ epoch, được định nghĩa là nửa đêm đầu ngày 1 tháng 1 năm 1970, UTC.

Try it

// 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);

Cú pháp

js
Date.now()

Tham số

Không có.

Giá trị trả về

Một số đại diện cho timestamp, tính bằng mili giây, của thời gian hiện tại.

Mô tả

Độ chính xác thời gian giảm

Để bảo vệ chống lại các cuộc tấn công định thời và lấy dấu vân tay, độ chính xác của Date.now() có thể bị làm tròn tùy thuộc vào cài đặt trình duyệt. Trong Firefox, tùy chọn privacy.reduceTimerPrecision được bật theo mặc định và mặc định là 2ms. Bạn cũng có thể bật privacy.resistFingerprinting, trong trường hợp đó độ chính xác sẽ là 100ms hoặc giá trị của privacy.resistFingerprinting.reduceTimerPrecision.microseconds, tùy thuộc vào giá trị nào lớn hơn.

Ví dụ, với độ chính xác thời gian giảm, kết quả của Date.now() sẽ luôn là bội số của 2, hoặc bội số của 100 (hoặc privacy.resistFingerprinting.reduceTimerPrecision.microseconds) khi privacy.resistFingerprinting được bật.

js
// độ chính xác thời gian giảm (2ms) trong Firefox 60
Date.now();
// Có thể là:
// 1519211809934
// 1519211810362
// 1519211811670
// …

// độ chính xác thời gian giảm với `privacy.resistFingerprinting` được bật
Date.now();
// Có thể là:
// 1519129853500
// 1519129858900
// 1519129864400
// …

Ví dụ

Đo thời gian đã trôi qua

Bạn có thể sử dụng Date.now() để lấy thời gian hiện tại tính bằng mili giây, sau đó trừ một thời gian trước đó để tìm hiểu bao nhiêu thời gian đã trôi qua giữa hai lần gọi.

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

Đối với các tình huống phức tạp hơn, bạn có thể muốn sử dụng performance API thay thế.

Thông số kỹ thuật

Thông số kỹ thuật
ECMAScript® 2027 Language Specification
# sec-date.now

Khả năng tương thích với trình duyệt

Xem thêm