Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Phương thức Date.now() trong JavaScript

Phương thức tĩnh Date.now() trả về số mili-giây đã trôi qua kể từ epoch (1/1/1970 00:00:00 UTC) đến thời điểm gọi. Đây là cách nhanh nhất để lấy timestamp hiện tại.

Cú pháp

Date.now()
  • Trả về: Số nguyên (mili-giây), kiểu number
  • Không nhận tham số

Ví dụ cơ bản

const now = Date.now();
console.log(now); // Ví dụ: 1735123456789

// Tính tuổi từ ngày sinh
const birth = Date.parse("1990-05-15");
const ageMs = Date.now() - birth;
const ageYears = ageMs / (1000 * 60 * 60 * 24 * 365.25);
console.log(`Tuổi: ${ageYears.toFixed(1)} năm`);

Chuyển đổi sang đối tượng Date

const timestamp = Date.now();
const date = new Date(timestamp);
console.log(date.toISOString());     // "2024-12-25T10:30:00.000Z"
console.log(date.toLocaleString());  // "25/12/2024, 17:30:00"

Đo hiệu năng (Performance timing)

const start = Date.now();
// ... thực hiện công việc ...
const end = Date.now();
console.log(`Thời gian thực thi: ${end - start} ms`);

// Hoặc dùng performance.now() cho độ chính xác cao hơn (sub-millisecond)
const t0 = performance.now();
// ...
const t1 = performance.now();
console.log(`${(t1 - t0).toFixed(2)} ms`);

So sánh với new Date().getTime()

Phương thứcTạo object Date?Hiệu năngĐộ chính xác
Date.now()KhôngNhanh nhấtMili-giây
new Date().getTime()CóChậm hơn (alloc object)Mili-giây
performance.now()KhôngNhanhSub-mili-giây

Lưu ý

  • Không tạo đối tượng Date trung gian - tiết kiệm bộ nhớ/GC
  • Độ chính xác phụ thuộc OS/hardware (thường 1ms, có thể grời hơn)
  • Không bị ảnh hưởng bởi thay đổi giờ hệ thống (system clock adjustment) giữa các lần gọi
  • ES5+ (hỗ trợ rộng rãi mọi trình duyệt hiện đại)