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!
автор: Bond

Порада

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

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

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

автор: Bond
Нотатка

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

автор: Bond

Синтаксис

setUTCMonth(monthValue)
setUTCMonth(monthValue, dateValue)

Параметри

monthValue

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

автор: Bond

dateValue

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

автор: Bond

Повернення

timestamp

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

автор: 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

Приклади

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

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

автор: Bond

У цьому прикладі ми створюємо новий об'єкт дати, 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()}`);
автор: Bond

У цьому прикладі, ми спочатку створюємо новий об'єкт дати, 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()}`);
автор: Bond

Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле саме підкаже шляхи, а хибний підкреслить хвилею.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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