JS метод Date.setUTCDate()
Загальний опис
Метод Date.prototype.setUTCDate()
відповідає за встановлення дня місяця дати об'єкта відповідно до універсального координованого часу (UTC). Цей метод потрібен, коли ви бажаєте змінити конкретний день місяця для конкретного об'єкта дати, використовуючи універсальний час, не змінюючи інші частини дати, такі як місяць чи рік.
Наприклад, якщо вам потрібно встановити 15-й день місяця для дати, ви можете зробити наступне:
let date = new Date(); // Отримання поточної дати і часу
date.setUTCDate(15); // Встановлення 15-го дня місяця в UTC
Застосування Date.prototype.setUTCDate()
важливе у багатьох сферах розробки, зокрема, у створенні календарів, планувальників задач та усіх типів додатків, які використовують дату та час.
Цей метод є частиною об'єкта Date
і специфічний для керування днем місяця, тобто він не впливає на інші компоненти дати, такі як місяць або рік. Отже, для коректного використання, розробник має звертати увагу на те, щоб не вказувати значення, яке виходить за межі допустимого діапазону днів у місяці, оскільки це призведе до автоматичного переходу на наступний місяць.
Наприклад:
let date = new Date('2023-10-01T00:00:00Z'); // 1 жовтня 2023
date.setUTCDate(32); // Результат буде 1 листопада 2023, не 32 жовтня!
Треба зазначити, що при встановленні дня місяця, якщо вказаний день виходить за межі допустимих днів місяця, JavaScript автоматично корегує дату. Така функціональність може бути корисною для знаходження дат у майбутньому чи минулому, але може також викликати плутанину у випадку, коли вхідне значення не є вірним.
Date.prototype.setUTCDate()
також відрізняється від Date.prototype.setDate()
, який встановлює день місяця за місцевим часом, не враховуючи UTC. Таким чином, розробники, які працюють з міжнародними додатками, повинні враховувати часові пояси користувачів.
Порада: | Під час використання методу
|
Порада: | Професіонали можуть комбінувати |
Синтаксис
setUTCDate(dateValue)
Параметри
- *
dateValue
Значення від 1 до 31, яке представляє день місяця. Якщо значення більше, ніж максимальний день у місяці,
dateValue
буде встановлено відповідно на наступні місяці. Наприклад, якщо для лютого задано 30, дата буде встановлена на 2 березня, якщо це не високосний рік, і на 1 березня, якщо це високосний рік.
Return
timestamp
Метод вносить зміни безпосередньо до об'єкту
Date
, і повертає новийtimestamp
. ЯкщоdateValue
єNaN
(або іншими значеннями, які конвертуються вNaN
, такими якundefined
), то дата встановлюється як "Invalid Date", і метод повертаєNaN
.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1 |
1 |
4 |
12 |
Переглядач | ||||
---|---|---|---|---|
4.4 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
Цей приклад демонструє, як використовувати Date.prototype.setUTCDate()
для додавання днів до поточної дати. Користувач вводить кількість днів, які хоче додати до поточної дати, у поле вводу, а потім натискає кнопку, і нова дата виводиться на екрані.
У цьому прикладі ми створюємо новий об'єкт date
для 1 березня 2023 року. Мета - визначити останній день лютого. Метод setUTCMonth()
змінює місяць на лютий, а метод setUTCDate(0)
встановлює дату на останній день попереднього місяця (лютого). Отже, date
тепер вказує на 28 лютого 2023 року.
// Створення нового об'єкта дати
let date = new Date('2023-03-01T12:00:00Z'); // 1 березня 2023, 12:00 UTC
// Встановлення останнього дня лютого
date.setUTCMonth(date.getUTCMonth() - 1); // Перехід на люту
date.setUTCDate(0); // Встановлення останнього дня попереднього місяця
console.log(date.toUTCString()); // Виводимо: 28 Feb 2023 12:00:00 UTC
У цьому прикладі ми створюємо новий об'єкт date
з датою 15 липня 2023 року і додаємо до неї 10 днів за допомогою методу setUTCDate()
. Ми використовуємо date.getUTCDate()
для отримання поточного дня місяця, додаємо до нього daysToAdd
і встановлюємо новий день місяця за допомогою setUTCDate()
. Таким чином, ми отримуємо 25 липня 2023 року як кінцевий результат.
// Створення нового об'єкта дати
let date = new Date('2023-07-15T12:00:00Z'); // 15 липня 2023, 12:00 UTC
// Кількість днів, яку потрібно додати
let daysToAdd = 10;
// Додаємо кількість днів до поточної дати
date.setUTCDate(date.getUTCDate() + daysToAdd);
console.log(date.toUTCString()); // Виводимо: 25 Jul 2023 12:00:00 UTC