getHours() возвращает часы из объекта Date.
Если говорить просто, этот метод достаёт час из даты и времени, например 0, 14 или 23.
Синтаксис
Базовая запись выглядит так:
date.getHours()
Где:
date- это объектDate
Аргументы этому методу не нужны.
Что возвращает getHours()
Метод возвращает число от 0 до 23.
const date = new Date(2025, 0, 15, 14, 30, 0);
console.log(date.getHours()); // 14
console.log(typeof date.getHours()); // "number"
Это важно:
0- полночь12- полдень23- последний час перед следующими сутками
Простой пример
const date = new Date(2025, 0, 15, 14, 30, 0);
console.log(date.getHours()); // 14
Здесь:
2025- год0- январь15- день месяца14- часы30- минуты
Метод возвращает 14, потому что это час в указанной дате.
Пример с началом и концом суток
const start = new Date(2025, 0, 15, 0, 0, 0);
const end = new Date(2025, 0, 15, 23, 59, 59);
console.log(start.getHours()); // 0
console.log(end.getHours()); // 23
Так хорошо видно, что диапазон значений идёт от 0 до 23.
getHours() не возвращает минуты
Это одна из самых частых ошибок.
getHours() отвечает только за часы. Минуты и секунды он не возвращает.
const date = new Date(2025, 0, 15, 14, 30, 0);
console.log(date.getHours()); // 14
Чем getHours() отличается от getMinutes()
Эти методы легко перепутать.
getHours()возвращает часыgetMinutes()возвращает минуты
const date = new Date(2025, 0, 15, 14, 30, 0);
console.log(date.getHours()); // 14
console.log(date.getMinutes()); // 30
getHours() не меняет дату
Метод только читает значение часов.
Он не изменяет исходный объект Date.
const date = new Date(2025, 0, 15, 14, 30, 0);
const hours = date.getHours();
console.log(hours); // 14
console.log(date); // исходная дата остаётся той же
getHours() работает по локальному времени
Это важный момент.
Метод getHours() смотрит на дату с точки зрения локального часового пояса пользователя.
Если вам нужны часы именно по UTC, используют getUTCHours().
Чем getHours() отличается от getUTCHours()
Разница такая:
getHours()возвращает часы по локальному времениgetUTCHours()возвращает часы поUTC
Обычно результат может отличаться из-за часового пояса.
const date = new Date(Date.UTC(2025, 0, 15, 0, 0, 0));
console.log(date.getUTCHours()); // 0
Если вы работаете с серверным временем, ISO-строками и UTC, этот нюанс очень важен.
Когда это полезно
getHours() особенно удобен, когда:
- нужно получить часы из даты
- вы проверяете, утро сейчас, день или вечер
- формируете время для интерфейса
- сравниваете моменты времени по часам
Пример:
const now = new Date();
if (now.getHours() < 12) {
console.log("Сейчас до полудня");
}
Проверка времени суток
Метод часто используют для простой логики по времени суток.
const now = new Date();
const hour = now.getHours();
if (hour >= 6 && hour < 12) {
console.log("Утро");
}
Невалидная дата даёт NaN
Если объект Date содержит некорректную дату, результатом будет NaN.
const date = new Date("invalid");
console.log(date.getHours()); // NaN
Это полезно помнить, если дата приходит из формы, API или пользовательского ввода.
getHours() не создаёт дату и не форматирует строку
Этот метод не создаёт новую дату и не превращает её в текст.
Он только возвращает число часов.
const date = new Date(2025, 0, 15, 14, 30, 0);
console.log(date.getHours()); // 14
Если нужен красивый вывод времени, его придётся формировать отдельно.
Частые ошибки
Путать getHours() и getMinutes()
const date = new Date(2025, 0, 15, 14, 30, 0);
console.log(date.getHours()); // 14
console.log(date.getMinutes()); // 30
Это два разных метода.
Ожидать формат от 1 до 24
const date = new Date(2025, 0, 15, 0, 0, 0);
console.log(date.getHours()); // 0
В JavaScript часы идут от 0 до 23, а не от 1 до 24.
Вызывать getHours() не у объекта Date
Правильно:
const date = new Date();
console.log(date.getHours());
Неправильно:
Date.getHours();
Метод getHours() работает у экземпляра Date, а не у самого объекта Date.
Забывать про локальное время
getHours() использует локальный часовой пояс пользователя.
Если важен именно UTC, лучше смотреть в сторону getUTCHours().
Не учитывать NaN у невалидной даты
const date = new Date("invalid");
console.log(date.getHours()); // NaN
Если дата может быть некорректной, полезно сначала проверить сам объект даты.
Быстрая памятка
getHours()вызывается у объектаDate- метод возвращает часы числом
- диапазон значений: от
0до23 0- это полночьgetHours()не возвращает минуты- для минут есть
getMinutes() getHours()работает по локальному времени- для
UTCестьgetUTCHours() - у невалидной даты результатом будет
NaN
Коротко
getHours() в JavaScript нужен, чтобы получить часы из объекта Date. Главное, что стоит запомнить: метод возвращает число от 0 до 23, работает по локальному времени, не изменяет саму дату и его очень важно не путать с getMinutes(), который отвечает уже за минуты.