Date.prototype.setHours()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Phương thức setHours() của các instance Date thay đổi giờ, phút, giây và/hoặc mili giây cho ngày này theo giờ địa phương.
Try it
const event = new Date("August 19, 1975 23:15:30");
event.setHours(20);
console.log(event);
// Expected output: "Tue Aug 19 1975 20:15:30 GMT+0200 (CEST)"
// Note: your timezone may vary
event.setHours(20, 21, 22);
console.log(event);
// Expected output: "Tue Aug 19 1975 20:21:22 GMT+0200 (CEST)"
Cú pháp
setHours(hoursValue)
setHours(hoursValue, minutesValue)
setHours(hoursValue, minutesValue, secondsValue)
setHours(hoursValue, minutesValue, secondsValue, msValue)
Tham số
hoursValue-
Một số nguyên từ 0 đến 23 đại diện cho giờ.
minutesValueOptional-
Một số nguyên từ 0 đến 59 đại diện cho phút.
secondsValueOptional-
Một số nguyên từ 0 đến 59 đại diện cho giây. Nếu bạn chỉ định
secondsValue, bạn cũng phải chỉ địnhminutesValue. msValueOptional-
Một số nguyên từ 0 đến 999 đại diện cho mili giây. Nếu bạn chỉ định
msValue, bạn cũng phải chỉ địnhminutesValuevàsecondsValue.
Giá trị trả về
Thay đổi đối tượng Date tại chỗ và trả về timestamp mới của nó. Nếu một tham số là NaN (hoặc các giá trị khác bị ép kiểu thành NaN, chẳng hạn như undefined), ngày sẽ được đặt thành Invalid Date và NaN được trả về.
Mô tả
Nếu bạn không chỉ định các tham số minutesValue, secondsValue và msValue, các giá trị tương tự như những gì được trả về bởi getMinutes(), getSeconds() và getMilliseconds() sẽ được sử dụng.
Nếu một tham số bạn chỉ định nằm ngoài phạm vi dự kiến, các tham số khác và thông tin ngày trong đối tượng Date sẽ được cập nhật tương ứng. Ví dụ, nếu bạn chỉ định 100 cho secondsValue, phút sẽ tăng thêm 1 (minutesValue + 1), và 40 sẽ được dùng cho giây.
Vì setHours() hoạt động theo giờ địa phương, việc vượt qua ranh giới Giờ tiết kiệm ánh sáng ban ngày (DST) có thể dẫn đến thời gian trôi qua khác với dự kiến. Ví dụ, nếu việc đặt giờ vượt qua chuyển tiếp mùa xuân (mất một giờ), sự chênh lệch timestamp giữa ngày mới và ngày cũ sẽ ít hơn một giờ so với chênh lệch giờ danh nghĩa. Ngược lại, việc vượt qua chuyển tiếp mùa thu (tăng một giờ) sẽ dẫn đến thêm một giờ. Nếu bạn cần điều chỉnh ngày theo một lượng thời gian cố định, hãy cân nhắc sử dụng setUTCHours() hoặc setTime().
Nếu thời gian địa phương mới nằm trong một chuyển tiếp offset, thời gian chính xác được suy ra bằng cách sử dụng hành vi tương tự như tùy chọn disambiguation: "compatible" của Temporal. Nghĩa là, nếu thời gian địa phương tương ứng với hai thời điểm, thời điểm trước được chọn; nếu thời gian địa phương không tồn tại (có khoảng trống), chúng ta tiến về phía trước bằng khoảng thời gian của khoảng trống.
Ví dụ
>Sử dụng setHours()
const theBigDay = new Date();
theBigDay.setHours(7);
Đặc tả kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-date.prototype.sethours> |