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

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

Phương thức setHours() thiết lập giờ (0-23) cho đối tượng Date theo thời gian địa phương, có thể kèm phút, giây, mili-giây. Trả về timestamp mới.

Cú pháp

dateObj.setHours(hours[, minutes[, seconds[, ms]]])
  • hours: Giờ (0-23). Vượt phạm vi -> auto normalize
  • minutes: Tùy chọn, phút (0-59)
  • seconds: Tùy chọn, giây (0-59)
  • ms: Tùy chọn, mili-giây (0-999)
  • Trả về: Timestamp mới (number)

Ví dụ cơ bản

const date = new Date('1989-09-26T05:04:25.096Z');
console.log("Trước:", date.toUTCString()); // Tue, 26 Sep 1989 05:04:25 GMT

date.setHours(12);
console.log("Sau:", date.toUTCString());  // Tue, 26 Sep 1989 12:04:25 GMT

Set giờ + phút + giây + ms

const date = new Date('1989-09-26T05:04:25.096Z');
date.setHours(15, 30, 45, 500);
console.log(date.toUTCString()); // Tue, 26 Sep 1989 15:30:45 GMT

Thiếu giờ khi tạo Date

const date = new Date('1989-09-26T04:25:00'); // Có giờ rồi
date.setHours(5);
console.log(date.toISOString()); // 1989-09-26T05:25:00.000Z

Ngày hiện tại set giờ

const date = new Date();
date.setHours(9, 0, 0, 0); // 09:00:00.000 local
console.log(date.toISOString());

Auto-normalize vượt phạm vi

const date = new Date('1989-09-26T12:00:00');
date.setHours(48); // 48h = 2 ngày
console.log(date.toISOString()); // 1989-09-28T12:00:00.000Z

date.setHours(-5); // Lùi 5h
console.log(date.toISOString()); // 1989-09-26T07:00:00.000Z

Lưu ý

  • Tất cả tham số sau hours đều tùy chọn
  • Vượt phạm vi tự động normalize (tràn sang ngày/tháng/năm)
  • Làm thay đổi object Date gốc
  • Khác với setUTCHours() (UTC time)
  • Cặp đôi với getHours()