Date.setFullYear() в JavaScript — встановити рік дати


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

Date.prototype.setFullYear() — це метод для зміни року в існуючому об'єкті Date в JavaScript. Він дозволяє точно налаштовувати дати, коректуючи інші частини дати за необхідністю, що робить його незамінним для динамічної роботи з календарями, планувальниками та іншими додатками, де дати відіграють ключову роль.

Припустимо, вам потрібно встановити дату на 1 січня наступного року:

let today = new Date();
today.setFullYear(today.getFullYear() + 1, 0, 1);
console.log(today);

Ще одна цікава особливість полягає в корекції невірних дат. Якщо ви намагаєтеся встановити неіснуючу дату, таку як 30 лютого, метод автоматично коригує її:

let someDate = new Date(2022, 0, 31); // 31 січня 2022
someDate.setFullYear(2023, 1, 30); // Намагаємося встановити 30 лютого 2023
console.log(someDate); // Ви побачите 2 березня 2023

В інтерактивних застосуваннях метод Date.prototype.setFullYear() може бути використаний для створення динамічних календарів, де користувач може обирати рік. Наприклад, при виборі року у випадаючому меню, JavaScript може автоматично оновлювати дату, використовуючи цей метод.

автор: Bond

Порада

Для більш складних обчислень чи порівнянь дат, розгляньте можливість використання числового результату методу Date.prototype.setFullYear() - мітки часу. Це може допомогти при порівнянні дат або при виконанні математичних операцій з датами.

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

Хоча це може здатися простим для початківців, важливо пам'ятати, що об'єкти Date в JavaScript працюють у локальному часовому поясі. При маніпулюванні датами, зокрема при використанні методу Date.prototype.setFullYear(), можливі розбіжності часових поясів при обміні даними між сервером і клієнтом.

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

Якщо вам потрібно виконувати операції з великою кількістю об'єктів Date, розгляньте можливість використання зовнішніх бібліотек, таких як Moment.js або Luxon. Ці бібліотеки надають більше можливостей та оптимізацій для роботи з датами та часом.

автор: Bond

Синтаксис

setFullYear(yearValue)
setFullYear(yearValue, monthValue)
setFullYear(yearValue, monthValue, dateValue)

Параметри

yearValue

Ціле число, що представляє рік. Наприклад, 1995.

автор: Bond

monthValue

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

автор: Bond

dateValue

Ціле число від 1 до 31, що представляє день місяця. Якщо ви вказуєте dateValue, вам також потрібно вказати monthValue.

автор: Bond

Повернення

timestamp

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

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 4 12 4
Підтримка: мобільні переглядачі
Переглядач 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

Приклади

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

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

HTML

<header>
  <h2 class="title">Date.prototype.setFullYear()</h2>
  <p class="description">Змінює рік дати, при цьому зберігаючи місяць та день місяця.</p>
</header>
<main>
  <div class="result">
    <p>Поточна дата: <span id="currentDate">Loading...</span></p>
    <label for="yearInput">Введіть новий рік: </label>
    <input type="number" id="yearInput" min="1900" value="2000">
    <button onclick="changeYear()">Змінити рік</button>
    <p>Змінена дата: <span id="changedDate">Loading...</span></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);
}

button {
  margin-left: 10px;
}

JS

window.onload = function () {
  const currentDateElem = document.getElementById("currentDate");
  const changedDateElem = document.getElementById("changedDate");
  let date = new Date();

  currentDateElem.textContent = date.toDateString();

  window.changeYear = function () {
    const yearInput = document.getElementById("yearInput").value;
    date.setFullYear(yearInput);
    changedDateElem.textContent = date.toDateString();
  };

  changeYear();
};
//# sourceURL=pen.js
автор: Bond

У цьому прикладі ми створюємо дату someDate з роком 2010. Потім за допомогою методу getFullYear() ми отримуємо поточний рік і використовуючи Date.prototype.setFullYear() змінюємо рік у даті someDate на поточний.

let someDate = new Date(2010, 5, 15); // Дата: 15 червня 2010 року

// Змінюємо рік для someDate на поточний
let currentYear = new Date().getFullYear();
someDate.setFullYear(currentYear);

console.log(someDate); // Дата: 15 червня поточного року (залежно від року виконання коду)
автор: Bond

Ми починаємо з дати startDate, що представляє 1 січня 2022 року. Ідея прикладу - додати до цієї дати певну кількість років (addedYears). Щоб це зробити, ми комбінуємо методи getFullYear() та Date.prototype.setFullYear(). Зокрема, ми отримуємо поточний рік з startDate, додаємо до нього addedYears і встановлюємо новий рік для startDate.

let startDate = new Date(2022, 0, 1); // Дата: 1 січня 2022 року

// Додаємо до startDate 5 років
let addedYears = 5;
startDate.setFullYear(startDate.getFullYear() + addedYears);

console.log(startDate); // Дата: 1 січня 2027 року
автор: Bond

Коментарі

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

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

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

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

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