GetUTCDay: примеры (JAVASCRIPT)
getUTCDay: numberОписание функции getUTCDay
Метод getUTCDay() принадлежит объекту Date в JavaScript. Он возвращает день недели для указанной даты по Всемирному координированному времени (UTC), где воскресенье соответствует значению 0, понедельник — 1 и так далее до субботы — 6.
Метод не принимает никаких аргументов. Он вызывается для экземпляра объекта Date и возвращает целое число от 0 до 6, которое представляет день недели по григорианскому календарю.
Использование метода актуально, когда требуется определить день недели независимо от временной зоны пользователя, что полезно в международных приложениях, логировании событий на сервере или при работе с данными, где необходимо единое временное представление.
Простые примеры использования
Пример с текущей датой:
const now = new Date();
console.log(now.getUTCDay());// Результат будет числом от 0 до 6 в зависимости от текущего дня недели по UTC.
Пример с конкретной датой:
const date = new Date('2023-12-25T00:00:00Z');
console.log(date.getUTCDay());1 // 25 декабря 2023 года — понедельник.
Похожие функции в JavaScript
Метод getDay() возвращает день недели для указанной даты по местному времени системы. Он следует тому же формату (0 — воскресенье). Выбор между getUTCDay() и getDay() зависит от необходимости учета локального часового пояса.
Методы getUTCDate() и getDate() возвращают число месяца, а не день недели.
Предпочтительнее использовать getUTCDay() для универсальных вычислений, не зависящих от локальных настроек.
Типичные ошибки
Основная ошибка — попытка вызвать метод для невалидного объекта Date.
const invalidDate = new Date('invalid-string');
console.log(invalidDate.getUTCDay());NaN
Еще одна распространенная ошибка — неправильная интерпретация возвращаемого значения, например, ожидание, что 1 соответствует вторнику.
Вызов метода с аргументами не приводит к ошибке, но аргументы игнорируются.
const date = new Date();
console.log(date.getUTCDay(5)); // Аргумент игнорируетсяИзменения в последних версиях
Метод getUTCDay() был стандартизирован в ECMAScript 1 (ES1) и с тех пор не претерпевал изменений в своем поведении или синтаксисе. Он остается стабильной и обратно совместимой частью языка JavaScript.
Расширенные примеры использования
Определение, является ли день выходным (суббота или воскресенье) по UTC:
function isUTCWeekend(date) {
const day = date.getUTCDay();
return day === 0 || day === 6;
}
console.log(isUTCWeekend(new Date('2023-12-24'))); // Воскресенье
console.log(isUTCWeekend(new Date('2023-12-25'))); // Понедельникtrue false
Сопоставление числового значения с названием дня недели на русском языке:
const utcDays = ['воскресенье', 'понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота'];
const date = new Date('2023-12-31T12:00:00Z');
console.log(utcDays[date.getUTCDay()]);воскресенье
Расчет количества определенных дней недели за период:
function countUTCDays(startDate, endDate, targetDay) {
let count = 0;
const current = new Date(startDate);
const end = new Date(endDate);
while (current <= end) {
if (current.getUTCDay() === targetDay) count++;
current.setUTCDate(current.getUTCDate() + 1);
}
return count;
}
console.log(countUTCDays('2023-12-01', '2023-12-31', 1)); // Понедельники в декабре 20235
Аналоги функции в других языках
PHP: Функция date('N', $timestamp) возвращает числовое представление дня недели по ISO-8601 (1 — понедельник, 7 — воскресенье) для времени UTC, если использовать gmdate().
echo gmdate('N', strtotime('2023-12-25'));1
Python: Метод weekday() у объекта datetime, возвращаемый datetime.utcnow(), дает число от 0 (понедельник) до 6 (воскресенье).
from datetime import datetime
print(datetime.utcnow().weekday())MySQL: Функция DAYOFWEEK(utc_date()) возвращает 1 для воскресенья, 2 для понедельника и т.д.
SELECT DAYOFWEEK(UTC_DATE());C (стандартная библиотека): В структуре tm, заполненной функцией gmtime(), поле tm_wday содержит день недели (0 — воскресенье, 6 — суббота).