getUTCDate() возвращает день месяца из объекта Date по UTC.
Если говорить просто, этот метод достаёт число месяца из даты, например 1, 15 или 31, но делает это не по локальному времени пользователя, а по всемирному времени UTC.
Синтаксис
Базовая запись выглядит так:
date.getUTCDate()
Где:
date- это объектDate
Аргументы этому методу не нужны.
Что возвращает getUTCDate()
Метод возвращает число от 1 до 31.
const date = new Date(Date.UTC(2025, 0, 15, 12, 0, 0));
console.log(date.getUTCDate()); // 15
console.log(typeof date.getUTCDate()); // "number"
Это важно: getUTCDate() возвращает именно день месяца, а не день недели.
Простой пример
const date = new Date(Date.UTC(2025, 0, 15, 12, 0, 0));
console.log(date.getUTCDate()); // 15
Здесь:
2025- год0- январь15- день месяца
Метод возвращает 15, потому что это число месяца в указанной дате по UTC.
Пример с началом и концом месяца
const firstDay = new Date(Date.UTC(2025, 0, 1, 0, 0, 0));
const lastDay = new Date(Date.UTC(2025, 0, 31, 23, 59, 59));
console.log(firstDay.getUTCDate()); // 1
console.log(lastDay.getUTCDate()); // 31
Так хорошо видно, что диапазон значений идёт от 1 до 31.
getUTCDate() не возвращает день недели
Это одна из самых частых ошибок.
Название метода легко сбивает с толку, особенно если рядом есть getDay().
getUTCDate() возвращает именно число месяца по UTC.
const date = new Date(Date.UTC(2025, 0, 15, 12, 0, 0));
console.log(date.getUTCDate()); // 15
Чем getUTCDate() отличается от getDay()
Эти методы очень часто путают.
getUTCDate()возвращает день месяца поUTCgetDay()возвращает день недели по локальному времени
const date = new Date(Date.UTC(2025, 0, 15, 12, 0, 0));
console.log(date.getUTCDate()); // 15
console.log(date.getDay()); // например, 3
То есть:
getUTCDate()отвечает за число месяцаgetDay()отвечает за день недели
Чем getUTCDate() отличается от getDate()
Разница такая:
getUTCDate()возвращает день месяца поUTCgetDate()возвращает день месяца по локальному времени
Обычно результат одинаковый, но возле границы суток он может отличаться.
const date = new Date("2025-01-01T00:30:00+03:00");
console.log(date.toISOString()); // 2024-12-31T21:30:00.000Z
console.log(date.getDate()); // 1
console.log(date.getUTCDate()); // 31
В этом примере по локальному времени уже первое число, а по UTC ещё предыдущее число месяца.
Если вы работаете с серверным временем, ISO-строками и UTC, этот нюанс особенно важен.
getUTCDate() не меняет дату
Метод только читает значение дня месяца.
Он не изменяет исходный объект Date.
const date = new Date(Date.UTC(2025, 0, 15, 12, 0, 0));
const day = date.getUTCDate();
console.log(day); // 15
console.log(date); // исходная дата остаётся той же
getUTCDate() работает именно по UTC
Это главный момент.
Метод getUTCDate() всегда смотрит на дату с точки зрения UTC.
Если вам нужен день месяца по локальному времени пользователя, используют getDate().
Когда это полезно
getUTCDate() особенно удобен, когда:
- дата хранится в
UTC - вы работаете с серверным временем
- нужно одинаковое поведение независимо от часового пояса пользователя
- вы разбираете ISO-строки и данные из API
Пример:
const createdAt = new Date("2025-07-01T00:30:00Z");
if (createdAt.getUTCDate() === 1) {
console.log("Запись создана первого числа по UTC");
}
Проверка дня месяца у даты из ISO-строки
Метод удобно использовать, когда дата приходит в формате UTC.
const date = new Date("2025-11-10T08:30:00Z");
console.log(date.getUTCDate()); // 10
Такой код предсказуемо работает именно по всемирному времени.
Невалидная дата даёт NaN
Если объект Date содержит некорректную дату, результатом будет NaN.
const date = new Date("invalid");
console.log(date.getUTCDate()); // NaN
Это полезно помнить, если дата приходит из формы, API или пользовательского ввода.
getUTCDate() не создаёт дату и не форматирует строку
Этот метод не создаёт новую дату и не превращает её в текст.
Он только возвращает число месяца по UTC.
const date = new Date(Date.UTC(2025, 0, 15, 12, 0, 0));
console.log(date.getUTCDate()); // 15
Если нужен человекочитаемый формат даты, его придётся собирать отдельно.
Частые ошибки
Путать getUTCDate() и getDay()
const date = new Date(Date.UTC(2025, 0, 15, 12, 0, 0));
console.log(date.getUTCDate()); // 15
console.log(date.getDay()); // день недели
getUTCDate() возвращает число месяца, а не день недели.
Путать getUTCDate() и getDate()
const date = new Date("2025-01-01T00:30:00+03:00");
console.log(date.getDate()); // 1
console.log(date.getUTCDate()); // 31
Это два похожих метода, но они смотрят на дату в разных системах времени.
Вызывать getUTCDate() не у объекта Date
Правильно:
const date = new Date();
console.log(date.getUTCDate());
Неправильно:
Date.getUTCDate();
Метод getUTCDate() работает у экземпляра Date, а не у самого объекта Date.
Ожидать локальное время вместо UTC
getUTCDate() специально работает по UTC, а не по часовому поясу пользователя.
Если нужен день месяца по локальному времени, лучше использовать getDate().
Не учитывать NaN у невалидной даты
const date = new Date("invalid");
console.log(date.getUTCDate()); // NaN
Если дата может быть некорректной, полезно сначала проверить сам объект даты.
Быстрая памятка
getUTCDate()вызывается у объектаDate- метод возвращает день месяца числом
- диапазон значений: от
1до31 getUTCDate()не возвращает день недели- для дня недели есть
getDay() getUTCDate()работает поUTC- для локального времени есть
getDate() - возле границы суток результат может отличаться от
getDate() - у невалидной даты результатом будет
NaN
Коротко
getUTCDate() в JavaScript нужен, чтобы получить день месяца из объекта Date по всемирному времени UTC. Главное, что стоит запомнить: метод возвращает число от 1 до 31, не зависит от локального часового пояса пользователя, не изменяет саму дату и его очень важно не путать с getDay(), который отвечает за день недели.