Learn JavaScript

getHours() - получение часов из даты в JavaScript

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(), который отвечает уже за минуты.