Date.getUTCDay() в JavaScript — номер дня тижня за UTC
Загальний опис
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(), розробники можуть впевнитися, що вони отримують правильний день тижня незалежно від локального часу сервера чи користувача.
- Порада
-
Для досвідчених розробників важливо розуміти, що сервери часто обробляють дату та час у форматі UTC. Отже, коли ви спілкуєтеся із серверами або взаємодієте із базами даних, завжди враховуйте, який формат часу ви використовуєте, щоб уникнути можливих непорозумінь або помилок.
автор: Bond - Порада
-
Професіонали розуміють важливість читабельності коду. Замість безпосереднього порівняння значень від
автор: BondgetUTCDay()із цифрами, використовуйте константи з осмисленими назвами, як`const SUNDAY = 0;`, щоб зробити ваш код більш зрозумілим для інших. - Порада
-
Основна відмінність між
Date.prototype.getUTCDay()таDate.prototype.getDay()полягає в тому, що перший виводить день тижня за універсальним координованим часом (UTC), тоді як другий враховує локальний час користувача. Переконайтеся, що завжди використовуєте потрібний метод в залежності від вашої задачі. Наприклад:
автор: Bondlet localDay = new Date().getDay(); let UTCDay = new Date().getUTCDay(); console.log(`Локальний день тижня: ${localDay}`); console.log(`UTC день тижня: ${UTCDay}`); - Порада
-
Щоб зробити ваш код читабельнішим та зручнішим для користувача, можна створити масив із назвами днів тижня та використовувати значення, отримані від
getUTCDay(), як індекси.
автор: Bondconst daysOfWeek = ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П'ятниця', 'Субота']; let UTCDay = new Date().getUTCDay(); console.log(`Сьогодні: ${daysOfWeek[UTCDay]}`);
Синтаксис
getUTCDay()
Повернення
integer-
Повертає номер дня тижня у форматі UTC, де 0 відповідає неділі, а 6 - суботі.
автор: Bond
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 4 | 12 | 4 |
| Переглядач | ||||
|---|---|---|---|---|
| 4.4 | 18 | 4 | 1 |
| Переглядач | ||
|---|---|---|
| 0.10.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
У цьому прикладі ми використовуємо метод getUTCDay() для визначення поточного дня тижня. Потім розраховуємо, скільки днів залишилося до наступної суботи, та повідомляємо користувачеві про це.
// Створюємо масив із назвами днів тижня
const daysOfWeek = ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\'ятниця', 'Субота'];
// Отримуємо поточний день тижня у форматі UTC
const currentDay = new Date().getUTCDay();
// Знаходимо кількість днів до наступної суботи
const daysToSaturday = (6 - currentDay + 1) % 7;
// Повідомляємо користувачеві, коли буде наступний вихідний
console.log(`До наступної суботи залишилося ${daysToSaturday} днів.`);
У другому прикладі ми маємо словник завдань для кожного дня тижня. Використовуючи метод getUTCDay(), ми можемо дізнатися поточний день тижня та отримати список завдань, які необхідно виконати сьогодні.
// Список завдань для кожного дня тижня
const tasksOfWeek = {
'0': ['Відпочинок'],
'1': ['Зустріч з клієнтом', 'Розробка додатку'],
'2': ['Тестування програми', 'Обговорення проекту'],
'3': ['Відпрацювання помилок', 'Документація'],
'4': ['Маркетингова кампанія', 'Відпрацювання зворотнього зв\'язку'],
'5': ['Зустріч з командою'],
'6': ['Відпочинок']
};
// Отримуємо поточний день тижня у форматі UTC
const currentDay = new Date().getUTCDay();
// Виводимо завдання на сьогоднішній день
console.log(`Завдання на сьогодні: ${tasksOfWeek[currentDay].join(', ')}`);
Цей приклад демонструє використання методу Date.prototype.getUTCDay(). Коли користувач вибирає дату з календаря, відображається день тижня для вибраної дати у форматі UTC.
HTML
<header>
<h2 class="title">Date.prototype.getUTCDay()</h2>
<p class="description">Отримання номеру дня тижня за UTC.</p>
</header>
<main>
<div class="result">
<label for="datePicker">Оберіть дату:</label>
<input type="date" id="datePicker">
<p id="utcDayOutput">UTC день тижня: </p>
</div>
</main>
CSS
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
-webkit-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
-moz-box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
JS
document.getElementById('datePicker').addEventListener('change', function () {
const selectedDate = new Date(this.value);
const daysOfWeek = ['Неділя', 'Понеділок', 'Вівторок', 'Середа', 'Четвер', 'П\'ятниця', 'Субота'];
const utcDay = daysOfWeek[selectedDate.getUTCDay()];
document.getElementById('utcDayOutput').innerText = "UTC день тижня: " + utcDay;
});
//# sourceURL=pen.js
Коментарі
Коментарів ще немає — будьте першим!