Наповнення JS розділу

Добридень, Пані та Панове, завдяки вам вдалося зібрати більше 19тис грн з необхідних 15тис на впровадження JS розділу.

JS розділ вже впроваджено - переходимо до його наповнення і почнемо бігти довгий марафон, адже JS має більше 1100 різноманітних методів, властивостей, подій і т.д., які необхідно описати.

Будемо працювати, і вдень, і вночі, щоб орієнтовно взимку закінчити наповнювати JS розділ!

Ви також можете допомогти нам в цьому. Долучайтеся до нашої спільноти в дискорді - ставайте її частиною і допомагайте нашому розвитку.

Також, підтримуйте нас матеріально.

JS метод Date.setUTCMonth()

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

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

Метод Date.prototype.setUTCMonth() дозволяє змінити тільки місяць об’єкта дати, не використовуючи інші компоненти дати. Використовується в основному тоді, коли потрібно коригувати місяць на основі UTC, зберігаючи при цьому всі інші значення часу і дати незмінними. Зокрема корисний в сферах, де важлива точність та синхронізація часу.

Date.prototype.setUTCMonth() приймає два аргументи: значення місяця, яке має бути встановлено, та необов’язкове значення дня місяця. Місяці в JavaScript рахуються від 0 (січень) до 11 (грудень), отже передавання 1 встановить місяць на лютий. Якщо ви передасте число більше 11, метод автоматично коригує рік.

Ось простий приклад:

let date = new Date('2023-09-24T12:00:00Z'); // UTC час
date.setUTCMonth(0); // встановлює місяць на січень
console.log(date.toISOString()); // виводить 2023-01-24T12:00:00.000Z

Цей метод, хоч і простий, вимагає обережного використання, особливо якщо передається другий аргумент, який вказує день місяця. Наприклад, якщо дата – 31 березня, а ви встановлюєте місяць на лютий (який має максимум 29 днів), результат буде 2 березня наступного року, адже метод спробує врахувати зайві дні.

Приклад:

let date = new Date('2023-03-31T12:00:00Z'); // 31 березня 2023, UTC час
date.setUTCMonth(1); // встановлює місяць на лютий
console.log(date.toISOString()); // виводить 2023-03-03T12:00:00.000Z, а не 2023-02-28T12:00:00.000Z!
Нотатка:

При встановленні місяця за допомогою Date.prototype.setUTCMonth(), важливо враховувати, що не всі місяці мають однакову кількість днів, і метод може автоматично скоригувати день місяця. Зокрема, якщо встановити лютий для дати, яка має 31 день, то результатом буде 3 березня.

Порада:

Досвідчені розробники повинні завжди проводити тестування своїх застосунків у різних часових поясах, коли використовують методи, пов’язані з UTC, такі як Date.prototype.setUTCMonth(). Розглядайте варіанти використання інших UTC методів для більш точного управління датами і часом у вашому коді.

Порада:

Якщо ви прагнете написати код, що легко читається та підтримується, завжди додавайте коментарі до викликів методу Date.prototype.setUTCMonth(), особливо якщо ви використовуєте неочевидні значення або використовуєте його у складних логічних конструкціях. Це допоможе іншим розробникам швидше зрозуміти ваш код та уникнути помилок при його модифікації.

Синтаксис

setUTCMonth(monthValue)
setUTCMonth(monthValue, dateValue)

Параметри

*monthValue

Ціле число, що представляє місяць: 0 для січня, 1 для лютого і так далі.

dateValue

Ціле число від 1 до 31, що представляє день місяця.

Return

timestamp

Модифікує об'єкт Date і повертає новий timestamp. Якщо параметр є NaN (або інші значення, які конвертуються в NaN, наприклад, undefined), то дата встановлюється як "Invalid Date", і повертається NaN.

Переглядачі

Переглядач

1

1

1

4

12

Переглядач

4.4

18

4

1

Переглядач

0.10.0

1.0

Приклади


Цей приклад демонструє використання методу Date.prototype.setUTCMonth(). Користувач може вводити номер місяця (від 0 до 11) у поле для введення та натискати кнопку, щоб змінити місяць в об'єкті дати. Результат буде відображено на сторінці.

У цьому прикладі ми створюємо новий об'єкт дати, currentDate, і встановлюємо його на 31 грудня 2023 року. Потім ми виводимо поточний місяць та рік. За допомогою методу Date.prototype.setUTCMonth ми змінюємо місяць на березень (2, оскільки місяці рахуються від 0). На завершення, ми виводимо змінену дату.

// Створення нового об'єкта дати.
let currentDate = new Date('2023-12-31T12:00:00Z');

// Виводимо поточний місяць та рік
console.log(`Поточна дата: ${currentDate.getUTCMonth() + 1}-${currentDate.getUTCFullYear()}`);

// Використовуємо setUTCMonth для встановлення місяця на березень (2, оскільки місяці рахуються від 0).
currentDate.setUTCMonth(2);

// Виводимо змінену дату
console.log(`Змінена дата: ${currentDate.getUTCMonth() + 1}-${currentDate.getUTCFullYear()}`);

У цьому прикладі, ми спочатку створюємо новий об'єкт дати, leapYearDate, який вказує на 29 лютого 2024 року (високосний рік). Ми виводимо початкову дату, потім використовуємо метод Date.prototype.setUTCMonth для встановлення місяця на лютий та дня місяця на 29 наступного року (не високосний рік). Оскільки наступний рік не є високосним, дата автоматично корегується на 1 березня. Після всіх змін ми виводимо змінену дату.

// Створення нового об'єкта дати
let leapYearDate = new Date('2024-02-29T12:00:00Z');

// Виводимо початкову дату
console.log(`Початкова дата: ${leapYearDate.getUTCDate()}-${leapYearDate.getUTCMonth() + 1}-${leapYearDate.getUTCFullYear()}`);

// Використовуємо setUTCMonth для встановлення місяця на лютий наступного року (не високосний рік).
leapYearDate.setUTCMonth(1, 29);
leapYearDate.setUTCFullYear(leapYearDate.getUTCFullYear() + 1);

// Виводимо змінену дату
console.log(`Змінена дата: ${leapYearDate.getUTCDate()}-${leapYearDate.getUTCMonth() + 1}-${leapYearDate.getUTCFullYear()}`);