このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

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 ⁨2015年7月⁩.

setFullYear()Date インスタンスのメソッドで、地方時に基づき、時、分、秒、ミリ秒を変更します。

試してみましょう

const event = new Date("August 19, 1975 23:15:30");
event.setHours(20);

console.log(event);
// 予想される結果: "Tue Aug 19 1975 20:15:30 GMT+0200 (CEST)"
// メモ: 時間帯は変化します

event.setHours(20, 21, 22);

console.log(event);
// 予想される結果: "Tue Aug 19 1975 20:21:22 GMT+0200 (CEST)"

構文

js
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 までの間の整数値です。999 よりも大きな値が指定された場合は、日時は追加のミリ秒数だけ増加します。msValue 引数を指定した場合、 minutesValuesecondsValue も指定しなければなりません。

返値

その場で Date オブジェクトを変更し、新しいタイムスタンプを返します。引数が NaN (または undefined など、 NaN変換されるその他の値)の場合、日付は無効な日時に設定され、 NaN が返されます。

解説

minutesValue, secondsValue および msValue 引数を指定しなかった場合、getMinutes()getSeconds()getMilliseconds() メソッドから返される値が使われます。

指定した値が期待される日付の範囲外の場合、それに応じて setHours() が他の引数と Date オブジェクトの日付情報の更新を試みます。例えば、secondsValue に 100 を指定した場合、分に 1 加算 (minutesValue + 1) され、秒が 40 になります。

setHours() の使用

js
const theBigDay = new Date();
theBigDay.setHours(7);

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-date.prototype.sethours

ブラウザーの互換性

関連情報