Learn JavaScript

getUTCDate() - получение дня месяца по UTC в JavaScript

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() возвращает день месяца по UTC
  • getDay() возвращает день недели по локальному времени
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() возвращает день месяца по UTC
  • getDate() возвращает день месяца по локальному времени

Обычно результат одинаковый, но возле границы суток он может отличаться.

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