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)