Spec-Zone.ru › JavaScript

Date.prototype.setHours()

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод setHours() объекта Date изменяет часы, минуты, секунды и/или миллисекунды для этой даты в соответствии с местным временем.

Попробуйте

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), дата устанавливается в Invalid Date, и возвращается NaN.

Описание

Если вы не указываете параметры minutesValue, secondsValue и msValue, используются те же значения, что возвращаются методами getMinutes(), getSeconds() и getMilliseconds().

Если указанный вами параметр выходит за пределы ожидаемого диапазона, остальные параметры и информация о дате в объекте Date обновляются соответствующим образом. Например, если вы указываете 100 для secondsValue, минуты увеличиваются на 1 (minutesValue + 1), а для секунд используется значение 40.

Поскольку setHours() работает с местным временем, пересечение границы перехода на летнее/зимнее время (DST) может привести к другому прошедшему времени, чем ожидалось. Например, если установка часов пересекает переход "весна вперед" (потеря часа), разница во временных штампах между новой и старой датой будет на час меньше, чем номинальная разница в часах. И наоборот, переход "осень назад" (добавление часа) приведет к дополнительному часу. Если вам нужно скорректировать дату на фиксированную величину времени, рассмотрите возможность использования setUTCHours() или setTime().

Если новое местное время попадает в переходный период смещения, точное время определяется с использованием того же поведения, что и опция disambiguation: "compatible" в Temporal. То есть, если местное время соответствует двум мгновениям, выбирается более раннее; если местное время не существует (есть промежуток), мы переходим вперед на продолжительность этого промежутка.

Примеры

Использование setHours()

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

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-date.prototype.sethours

Совместимость с браузерами

Настольные компьютеры Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
setHours
1
12
1
3
1
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

См. также

  • Date.prototype.getHours()
  • Date.prototype.setUTCHours()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setHours

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API