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

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

Phương thức setTime() thiết lập giá trị thời gian cho đối tượng Date bằng cách truyền trực tiếp timestamp (mili-giây từ epoch UTC). Đây là cách nhanh nhất để gán một thời điểm chính xác.

Cú pháp

dateObj.setTime(timeValue)
  • timeValue: Số mili-giây từ epoch (1/1/1970 UTC). Có thể âm (trước 1970)
  • Trả về: Timestamp mới (number) - bằng timeValue

Ví dụ cơ bản

const date1 = new Date('1989-09-26T05:04:25.096Z');
const date2 = new Date('1979-11-01T06:01:00.000Z');

console.log("Trước:", date2.toUTCString()); // Thu, 01 Nov 1979 06:01:00 GMT

date2.setTime(date1.getTime()); // Copy timestamp từ date1
console.log("Sau:", date2.toUTCString());  // Tue, 26 Sep 1989 05:04:25 GMT

Tạo Date từ timestamp

const timestamp = 1735123456789; // Từ API, database, log
const date = new Date();
date.setTime(timestamp);
console.log(date.toISOString()); // 2024-12-25T10:30:56.789Z

// Ngắn gọn hơn:
const date2 = new Date(timestamp); // Constructor trực tiếp

Ứng dụng

  • Copy timestamp giữa các Date object
  • Khởi tạo Date từ timestamp số (database, API, message queue)
  • Reset Date về epoch: date.setTime(0)
  • Time travel testing: setTime(fixedTimestamp)
  • Serialization: lưu timestamp (number) thay vì object

Lưu ý

  • Tham số là mili-giây (khác Unix timestamp thường là giây)
  • Unix timestamp (giây) -> nhân 1000: date.setTime(unixTs * 1000)
  • Làm thay đổi object Date gốc
  • Tương đương gán date = new Date(timestamp) nhưng tái sử dụng object
  • Trả về timestamp mới (bằng tham số truyền vào)