JS метод Date.getUTCDay()


Загальний опис

Date.prototype.getUTCDay() є однією із властивостей об'єкта Date у JavaScript, яка дозволяє отримати день тижня у форматі від 0 (неділя) до 6 (субота) за координованим універсальним часом (UTC). Завдяки цьому методу можна визначити день тижня будь-якої дати без врахування змінного часового поясу користувача.

Наприклад, уявімо, що ви створюєте сервіс для бронювання столиків у ресторані, який працює лише у будні дні. Щоб переконатися, що клієнт обирає правильний день, можна використовувати Date.prototype.getUTCDay() для визначення дня тижня та відкидання неділь та субот:

let chosenDate = new Date('2023-09-14');
let dayOfWeek = chosenDate.getUTCDay();

if (dayOfWeek === 0 || dayOfWeek === 6) {
    console.log('Вибачте, ресторан закритий. Оберіть інший день.');
} else {
    console.log('Ресторан відкритий! Продовжуйте бронювання.');
}

У контексті додатків, які працюють з глобальними користувачами з різних часових поясів, Date.prototype.getUTCDay() стає незамінним. Це тому, що цей метод виводить день тижня за універсальним координованим часом (UTC), а не за локальним часом користувача.

Особливо це стає важливим при роботі з серверами. Коли дата та час обробляються на сервері, це часто робиться в UTC, щоб уникнути плутанини з часовими поясами. Використовуючи Date.prototype.getUTCDay(), розробники можуть впевнитися, що вони отримують правильний день тижня незалежно від локального часу сервера чи користувача.

автор: Bond

Порада

Для досвідчених розробників важливо розуміти, що сервери часто обробляють дату та час у форматі UTC. Отже, коли ви спілкуєтеся із серверами або взаємодієте із базами даних, завжди враховуйте, який формат часу ви використовуєте, щоб уникнути можливих непорозумінь або помилок.

автор: Bond
Порада

Професіонали розуміють важливість читабельності коду. Замість безпосереднього порівняння значень від getUTCDay() із цифрами, використовуйте константи з осмисленими назвами, як `const SUNDAY = 0;`, щоб зробити ваш код більш зрозумілим для інших.

автор: Bond
Порада

Основна відмінність між Date.prototype.getUTCDay() та Date.prototype.getDay() полягає в тому, що перший виводить день тижня за універсальним координованим часом (UTC), тоді як другий враховує локальний час користувача. Переконайтеся, що завжди використовуєте потрібний метод в залежності від вашої задачі. Наприклад:

let localDay = new Date().getDay();
let UTCDay = new Date().getUTCDay();

console.log(`Локальний день тижня: ${localDay}`);
console.log(`UTC день тижня: ${UTCDay}`);
автор: Bond
Порада

Щоб зробити ваш код читабельнішим та зручнішим для користувача, можна створити масив із назвами днів тижня та використовувати значення, отримані від getUTCDay(), як індекси.

const daysOfWeek = ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П'ятниця', 'Субота'];
let UTCDay = new Date().getUTCDay();

console.log(`Сьогодні: ${daysOfWeek[UTCDay]}`);
автор: Bond

Синтаксис

getUTCDay()

Повернення

integer

Повертає номер дня тижня у форматі UTC, де 0 відповідає неділі, а 6 - суботі.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 4 12
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1
Підтримка: серверні переглядачі
Переглядач Node.js Deno
0.10.0 1.0

Приклади

+ запропонувати свій приклад у пісочниці

У цьому прикладі ми використовуємо метод getUTCDay() для визначення поточного дня тижня. Потім розраховуємо, скільки днів залишилося до наступної суботи, та повідомляємо користувачеві про це.

// Створюємо масив із назвами днів тижня
const daysOfWeek = ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\'ятниця', 'Субота'];

// Отримуємо поточний день тижня у форматі UTC
const currentDay = new Date().getUTCDay();

// Знаходимо кількість днів до наступної суботи
const daysToSaturday = (6 - currentDay + 1) % 7;

// Повідомляємо користувачеві, коли буде наступний вихідний
console.log(`До наступної суботи залишилося ${daysToSaturday} днів.`);
автор: Bond

У другому прикладі ми маємо словник завдань для кожного дня тижня. Використовуючи метод getUTCDay(), ми можемо дізнатися поточний день тижня та отримати список завдань, які необхідно виконати сьогодні.

// Список завдань для кожного дня тижня
const tasksOfWeek = {
    '0': ['Відпочинок'],
    '1': ['Зустріч з клієнтом', 'Розробка додатку'],
    '2': ['Тестування програми', 'Обговорення проекту'],
    '3': ['Відпрацювання помилок', 'Документація'],
    '4': ['Маркетингова кампанія', 'Відпрацювання зворотнього зв\'язку'],
    '5': ['Зустріч з командою'],
    '6': ['Відпочинок']
};

// Отримуємо поточний день тижня у форматі UTC
const currentDay = new Date().getUTCDay();

// Виводимо завдання на сьогоднішній день
console.log(`Завдання на сьогодні: ${tasksOfWeek[currentDay].join(', ')}`);
автор: Bond

Цей приклад демонструє використання методу Date.prototype.getUTCDay(). Коли користувач вибирає дату з календаря, відображається день тижня для вибраної дати у форматі UTC.

автор: Bond

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід