Learn JavaScript

getDate() - получение дня месяца из даты в JavaScript

getDate() возвращает день месяца из объекта Date.

Если говорить просто, этот метод достаёт число месяца из даты, например 1, 15 или 31.

Синтаксис

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

date.getDate()

Где:

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

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

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

Метод возвращает число от 1 до 31.

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

console.log(date.getDate()); // 15
console.log(typeof date.getDate()); // "number"

Это важно: getDate() возвращает именно день месяца, а не день недели.

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

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

console.log(date.getDate()); // 15

Здесь:

  • 2025 - год
  • 0 - январь
  • 15 - день месяца

Метод возвращает 15, потому что это число месяца в указанной дате.

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

const firstDay = new Date(2025, 0, 1);
const lastDay = new Date(2025, 0, 31);

console.log(firstDay.getDate()); // 1
console.log(lastDay.getDate()); // 31

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

getDate() не возвращает день недели

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

Многие видят слово Date и думают, что метод вернёт что-то вроде понедельника, вторника или номер дня недели. Но это не так.

getDate() возвращает именно число месяца.

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

console.log(date.getDate()); // 15

Чем getDate() отличается от getDay()

Эти методы очень часто путают.

  • getDate() возвращает день месяца
  • getDay() возвращает день недели
const date = new Date(2025, 0, 15);

console.log(date.getDate()); // 15
console.log(date.getDay()); // например, 3

То есть:

  • getDate() отвечает за число месяца
  • getDay() отвечает за день недели

Чем getDate() отличается от getMonth()

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

  • getDate() возвращает день месяца
  • getMonth() возвращает месяц
const date = new Date(2025, 0, 15);

console.log(date.getDate()); // 15
console.log(date.getMonth()); // 0

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

Метод только читает значение дня месяца.

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

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

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

getDate() работает по локальному времени

Это важный момент.

Метод getDate() смотрит на дату с точки зрения локального часового пояса пользователя.

Если вам нужен день месяца именно по UTC, используют getUTCDate().

Чем getDate() отличается от getUTCDate()

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

  • getDate() возвращает день месяца по локальному времени
  • getUTCDate() возвращает день месяца по UTC

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

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

console.log(date.getUTCDate()); // 1

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

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

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

  • нужно получить число месяца из даты
  • вы формируете дату для интерфейса
  • сравниваете даты по дню месяца
  • проверяете, какое число сегодня

Пример:

const today = new Date();

if (today.getDate() === 1) {
  console.log("Сегодня первое число");
}

Проверка дня месяца у разных дат

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

const first = new Date(2025, 0, 1);
const second = new Date(2025, 0, 15);

console.log(first.getDate()); // 1
console.log(second.getDate()); // 15

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

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

const date = new Date("invalid");

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

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

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

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

Он только возвращает число месяца.

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

console.log(date.getDate()); // 15

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

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

Путать getDate() и getDay()

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

console.log(date.getDate()); // 15
console.log(date.getDay()); // день недели

getDate() возвращает число месяца, а не день недели.

Путать getDate() и getMonth()

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

console.log(date.getDate()); // 15
console.log(date.getMonth()); // 0

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

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

Правильно:

const date = new Date();

console.log(date.getDate());

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

Date.getDate();

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

Забывать про локальное время

getDate() использует локальный часовой пояс пользователя.

Если важен именно UTC, лучше смотреть в сторону getUTCDate().

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

const date = new Date("invalid");

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

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

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

  • getDate() вызывается у объекта Date
  • метод возвращает день месяца числом
  • диапазон значений: от 1 до 31
  • getDate() не возвращает день недели
  • для дня недели есть getDay()
  • getDate() работает по локальному времени
  • для UTC есть getUTCDate()
  • у невалидной даты результатом будет NaN

Коротко

getDate() в JavaScript нужен, чтобы получить день месяца из объекта Date. Главное, что стоит запомнить: метод возвращает число от 1 до 31, работает по локальному времени, не изменяет саму дату и его очень важно не путать с getDay(), который отвечает уже за день недели.