Learn JavaScript

getUTCHours() - получение часов по UTC в JavaScript

getUTCHours() возвращает часы из объекта Date по UTC.

Если говорить просто, этот метод достаёт час из даты и времени, например 0, 14 или 23, но делает это не по локальному времени пользователя, а по всемирному времени UTC.

Синтаксис

Базовая запись выглядит так:

date.getUTCHours()

Где:

  • date - это объект Date

Аргументы этому методу не нужны.

Что возвращает getUTCHours()

Метод возвращает число от 0 до 23.

const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 0));

console.log(date.getUTCHours()); // 14
console.log(typeof date.getUTCHours()); // "number"

Это важно:

  • 0 - полночь
  • 12 - полдень
  • 23 - последний час перед следующими сутками

Простой пример

const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 0));

console.log(date.getUTCHours()); // 14

Здесь:

  • 2025 - год
  • 0 - январь
  • 15 - день месяца
  • 14 - часы
  • 30 - минуты

Метод возвращает 14, потому что это час в указанной дате по UTC.

Пример с началом и концом суток

const start = new Date(Date.UTC(2025, 0, 15, 0, 0, 0));
const end = new Date(Date.UTC(2025, 0, 15, 23, 59, 59));

console.log(start.getUTCHours()); // 0
console.log(end.getUTCHours()); // 23

Так хорошо видно, что диапазон значений идёт от 0 до 23.

getUTCHours() не возвращает минуты

Это одна из самых частых ошибок.

getUTCHours() отвечает только за часы. Минуты и секунды он не возвращает.

const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 0));

console.log(date.getUTCHours()); // 14

Чем getUTCHours() отличается от getUTCMinutes()

Эти методы легко перепутать.

  • getUTCHours() возвращает часы по UTC
  • getUTCMinutes() возвращает минуты по UTC
const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 0));

console.log(date.getUTCHours()); // 14
console.log(date.getUTCMinutes()); // 30

getUTCHours() не меняет дату

Метод только читает значение часов.

Он не изменяет исходный объект Date.

const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 0));
const hours = date.getUTCHours();

console.log(hours); // 14
console.log(date); // исходная дата остаётся той же

getUTCHours() работает именно по UTC

Это главный момент.

Метод getUTCHours() всегда смотрит на дату с точки зрения UTC.

Если вам нужны часы по локальному времени пользователя, используют getHours().

Чем getUTCHours() отличается от getHours()

Разница такая:

  • getUTCHours() возвращает часы по UTC
  • getHours() возвращает часы по локальному времени

Обычно результат отличается, если локальный часовой пояс не равен UTC.

const date = new Date("2025-01-15T00:00:00+03:00");

console.log(date.toISOString()); // 2025-01-14T21:00:00.000Z
console.log(date.getUTCHours()); // 21

В этом примере по времени UTC+3 это полночь, а по UTC ещё 21 час предыдущего дня.

Если вы работаете с серверным временем, ISO-строками и UTC, этот нюанс особенно важен.

Когда это полезно

getUTCHours() особенно удобен, когда:

  • дата хранится в UTC
  • вы работаете с серверным временем
  • нужно одинаковое поведение независимо от часового пояса пользователя
  • вы строите отчёты, расписания или логи по UTC

Пример:

const createdAt = new Date("2025-01-15T08:30:00Z");

if (createdAt.getUTCHours() < 12) {
  console.log("Событие произошло до полудня по UTC");
}

Проверка времени суток по UTC

Метод часто используют для простой логики по времени суток именно в UTC.

const now = new Date();
const hour = now.getUTCHours();

if (hour >= 18) {
  console.log("По UTC уже вечер");
}

Невалидная дата даёт NaN

Если объект Date содержит некорректную дату, результатом будет NaN.

const date = new Date("invalid");

console.log(date.getUTCHours()); // NaN

Это полезно помнить, если дата приходит из формы, API или пользовательского ввода.

getUTCHours() не создаёт дату и не форматирует строку

Этот метод не создаёт новую дату и не превращает её в текст.

Он только возвращает число часов по UTC.

const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 0));

console.log(date.getUTCHours()); // 14

Если нужен красивый вывод времени, его придётся формировать отдельно.

Частые ошибки

Путать getUTCHours() и getUTCMinutes()

const date = new Date(Date.UTC(2025, 0, 15, 14, 30, 0));

console.log(date.getUTCHours()); // 14
console.log(date.getUTCMinutes()); // 30

Это два разных метода.

Ожидать формат от 1 до 24

const date = new Date(Date.UTC(2025, 0, 15, 0, 0, 0));

console.log(date.getUTCHours()); // 0

В JavaScript часы идут от 0 до 23, а не от 1 до 24.

Путать getUTCHours() и getHours()

const date = new Date("2025-01-15T00:00:00+03:00");

console.log(date.getUTCHours()); // 21

Если нужен именно UTC, используйте getUTCHours(), а не getHours().

Вызывать getUTCHours() не у объекта Date

Правильно:

const date = new Date();

console.log(date.getUTCHours());

Неправильно:

Date.getUTCHours();

Метод getUTCHours() работает у экземпляра Date, а не у самого объекта Date.

Ожидать локальное время вместо UTC

getUTCHours() специально работает по UTC, а не по часовому поясу пользователя.

Если нужны часы по локальному времени, лучше использовать getHours().

Не учитывать NaN у невалидной даты

const date = new Date("invalid");

console.log(date.getUTCHours()); // NaN

Если дата может быть некорректной, полезно сначала проверить сам объект даты.

Быстрая памятка

  • getUTCHours() вызывается у объекта Date
  • метод возвращает часы числом
  • диапазон значений: от 0 до 23
  • 0 - это полночь
  • getUTCHours() не возвращает минуты
  • для минут есть getUTCMinutes()
  • getUTCHours() работает по UTC
  • для локального времени есть getHours()
  • у невалидной даты результатом будет NaN

Коротко

getUTCHours() в JavaScript нужен, чтобы получить часы из объекта Date по всемирному времени UTC. Главное, что стоит запомнить: метод возвращает число от 0 до 23, не зависит от локального часового пояса пользователя, не изменяет саму дату и его очень важно не путать с getUTCMinutes(), который отвечает уже за минуты.