Get to know MDN better
此頁面由社群從英文翻譯而來。了解更多並加入 MDN Web Docs 社群。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Date 實例的 setHours() 方法會根據本地時間變更此日期的時、分、秒和/或毫秒。
一個介於 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() 是根據本地時間運作,跨越日光節約時間(Daylight Saving Time,DST)邊界可能會導致與預期不同的經過時間。例如,如果設定的小時數跨越了春季快轉轉換(少了一小時),新舊日期之間的時間戳差異將比名目上的一小時差異少一小時。相反地,跨越秋季倒退轉換(多了一小時)則會導致多出一小時。如果你需要按固定的時間量調整日期,請考慮使用 setUTCHours() 或 setTime()。
如果新的本地時間落在時區偏移轉換期間,確切的時間會使用與 Temporal 的 disambiguation: "compatible" 選項相同的行為來推導。也就是說,如果本地時間對應到兩個瞬間,會選擇較早的一個;如果本地時間不存在(有間隙),我們會前進間隙的持續時間。
| ECMAScript® 2027 Language Specification # sec-date.prototype.sethours |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年8月12日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.