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()возвращает часы поUTCgetUTCMinutes()возвращает минуты по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()возвращает часы поUTCgetHours()возвращает часы по локальному времени
Обычно результат отличается, если локальный часовой пояс не равен 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(), который отвечает уже за минуты.