GetUTCDate: примеры (JAVASCRIPT)

Метод getUTCDate: получение дня месяца по UTC
Раздел: Дата и время, UTC методы
getUTCDate: number

Основные сведения о getUTCDate

Метод getUTCDate() принадлежит объекту Date в JavaScript. Он возвращает целое число от 1 до 31, представляющее день месяца для указанной даты по Всемирному координированному времени (UTC).

Функция не принимает аргументов. Её вызов производится на экземпляре объекта Date. Возвращаемое значение всегда является числом (integer). Использование метода актуально в ситуациях, когда необходима независимость от локального часового пояса пользователя, например, при логировании временных меток на сервере, синхронизации времени между разными регионами или в международных веб-приложениях.

Краткие примеры

Пример с текущей датой:

const now = new Date();
console.log(now.getUTCDate());
// Результат зависит от текущего дня (например, 17)

Пример с конкретной датой:

const specDate = new Date('2024-01-15T12:00:00Z');
console.log(specDate.getUTCDate());
// 15

Пример, показывающий разницу с локальным временем:

// Создаем дату для 31 декабря 23:30 по Токио (UTC+9)
const dateTokyo = new Date('2023-12-31T23:30:00+09:00');
console.log('Локальный день (getDate):', dateTokyo.getDate());
console.log('UTC день (getUTCDate):', dateTokyo.getUTCDate());
// Локальный день (getDate): 31
// UTC день (getUTCDate): 30

Похожие методы в JavaScript

getDate() - возвращает день месяца по местному времени. Следует применять, когда отображение даты должно соответствовать часовому поясу пользователя.

getUTCDay() - возвращает день недели (0-6) по UTC. Используется для получения дня недели, независимого от локали.

getUTCFullYear(), getUTCMonth() - методы для получения других компонентов даты (год, месяц) в формате UTC. Целесообразно применять в связке с getUTCDate() для полного представления даты по UTC.

Распространенные ошибки

Ошибка 1: Вызов метода на не Date-объекте.

const notDate = '2024-01-01';
console.log(notDate.getUTCDate());
// TypeError: notDate.getUTCDate is not a function

Ошибка 2: Непонимание разницы между UTC и локальным временем, ведущее к логическим ошибкам в расчетах.

// Пользователь в Нью-Йорке (UTC-5) создает дату 1 января 00:30.
const localNY = new Date(2024, 0, 1, 0, 30);
console.log(localNY.getDate()); // 1
console.log(localNY.getUTCDate()); // 31 (предыдущий день)
1
31

Ошибка 3: Ожидание, что метод возвращает строку или объект.

const d = new Date();
const result = d.getUTCDate();
console.log(typeof result); // 'number', не 'string'
number

История изменений

Метод getUTCDate() был стандартизирован в ECMAScript 1 (1997 год) и с тех пор его поведение остается стабильным. В современных стандартах (ECMAScript 2023) не было внесено значимых изменений в его работу.

Расширенные примеры использования

Пример 1: Форматирование полной даты в формате ISO 8601 (только дата) с использованием UTC.

Пример javascript
function formatUTCToISODate(date) {
    const year = date.getUTCFullYear();
    const month = (date.getUTCMonth() + 1).toString().padStart(2, '0');
    const day = date.getUTCDate().toString().padStart(2, '0');
    return `${year}-${month}-${day}`;
}
const myDate = new Date('2024-12-05T22:00:00Z');
console.log(formatUTCToISODate(myDate));
2024-12-05

Пример 2: Определение последнего дня месяца по UTC.

Пример javascript
function getLastUTCDayOfMonth(year, month) {
    // month от 0 (январь) до 11 (декабрь)
    const date = new Date(Date.UTC(year, month + 1, 0));
    return date.getUTCDate();
}
console.log(getLastUTCDayOfMonth(2023, 1)); // Февраль 2023
28

Пример 3: Вычисление интервала между двумя датами в днях по UTC (игнорируя время).

Пример javascript
function daysDifferenceUTC(date1, date2) {
    const utc1 = Date.UTC(date1.getUTCFullYear(), date1.getUTCMonth(), date1.getUTCDate());
    const utc2 = Date.UTC(date2.getUTCFullYear(), date2.getUTCMonth(), date2.getUTCDate());
    return Math.floor((utc2 - utc1) / (1000 * 60 * 60 * 24));
}
const start = new Date('2024-01-01T23:59:59Z');
const end = new Date('2024-01-03T00:00:01Z');
console.log(daysDifferenceUTC(start, end));
2

Пример 4: Итерация по дням определенного месяца по UTC.

Пример javascript
function listUTCDaysInMonth(year, month) {
    const days = [];
    const firstDay = new Date(Date.UTC(year, month, 1));
    const lastDay = new Date(Date.UTC(year, month + 1, 0));
    for (let d = new Date(firstDay); d <= lastDay; d.setUTCDate(d.getUTCDate() + 1)) {
        days.push(new Date(d).toISOString().slice(0, 10));
    }
    return days;
}
console.log(listUTCDaysInMonth(2024, 0)); // Январь 2024
['2024-01-01', '2024-01-02', ... , '2024-01-31']

Аналоги в других языках

PHP: Функция gmdate() с форматом 'j'.

echo gmdate('j'); // День месяца по UTC
// Или для конкретной метки времени:
$timestamp = strtotime('2024-01-15');
echo gmdate('j', $timestamp);
15

Python: Атрибут day объекта datetime, полученного через datetime.utcnow().

from datetime import datetime
utc_date = datetime.utcnow()
print(utc_date.day)
17

MySQL: Функция DAY(UTC_DATE()).

SELECT DAY(UTC_DATE());
17

C (стандартная библиотека time.h):

#include 
#include 
int main() {
    time_t t = time(NULL);
    struct tm *gtm = gmtime(&t);
    printf("%d\n", gtm->tm_mday);
    return 0;
}
17

JS getUTCDate function comments

En
GetUTCDate Returns the day (date) of the month in the specified date according to universal time