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ức | Tạo object Date? | Hiệu năng | Độ chính xác |
|---|---|---|---|
Date.now() | Không | Nhanh nhất | Mili-giây |
new Date().getTime() | Có | Chậm hơn (alloc object) | Mili-giây |
performance.now() | Không | Nhanh | Sub-mili-giây |
Lưu ý
- Không tạo đối tượng
Datetrung 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)