試一試
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)"
語法
setHours(hoursValue)
setHours(hoursValue, minutesValue)
setHours(hoursValue, minutesValue, secondsValue)
setHours(hoursValue, minutesValue, secondsValue, msValue)
引數
hoursValue-
一個 0 到 23 之間的整數,表示小時。
minutesValue可選-
一個介於 0 和 59 之間的整數,表示分鐘數。
secondsValue可選-
一個介於 0 和 59 之間的整數,表示秒數。如果指定了
secondsValue,則必須同時指定minutesValue。 msValue可選-
一個介於 0 和 999 之間的整數,表示毫秒數。如果指定了
msValue,則必須同時指定minutesValue和secondsValue。
返回值
該方法會直接修改 Date 物件,並返回其新的 時間戳。如果某個引數是 NaN(或被 強制轉換 為 NaN 的值,如 undefined),則日期將設定為 無效日期,並返回 NaN。
描述
如果您不指定 minutesValue、secondsValue 和 msValue 引數,將使用與 getMinutes()、getSeconds() 和 getMilliseconds() 返回的相同值。
如果您指定的引數超出了預期範圍,其他引數和 Date 物件中的日期資訊將相應更新。例如,如果您為 secondsValue 指定 100,分鐘將增加 1 (minutesValue + 1),秒將使用 40。
由於 setHours() 操作的是本地時間,因此跨越夏令時 (DST) 邊界可能會導致實際經過時間與預期不同。例如,如果設定小時的時間點恰好是春季向前調整(省略一小時),則新舊日期之間的時間戳差異會比名義上的小時差異少一個小時。反之,如果是秋季向後調整(增加一小時),則會多出一個小時。如果您需要按固定時間量調整日期,請考慮使用 setUTCHours() 或 setTime()。
如果新的本地時間落在偏移量轉換範圍內,則確切時間將使用與 Temporal 的 disambiguation: "compatible" 選項相同的行為來確定。也就是說,如果本地時間對應兩個瞬間,則選擇較早的那個;如果本地時間不存在(存在間隙),則向前推進間隙持續的時間。
示例
使用 setHours()
const theBigDay = new Date();
theBigDay.setHours(7);
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-date.prototype.sethours |
瀏覽器相容性
載入中…