JS метод Date.constructor()


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

Date() - це фундаментальний конструктор у JavaScript для роботи з часом і датою. Його можливості не обмежуються лише отриманням поточного моменту часу; він надає широкий спектр функцій для маніпулювання, порівняння та форматування дат. Як і більшість об'єктів в JavaScript, Date() надає можливість працювати з прототипами, дозволяючи розширювати його функціональність.

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

Ось приклад використання методу Date.UTC(), який повертає час в мілісекундах:

let start = `Date.UTC`(2023, 0, 1);
let end = `Date.UTC`(2023, 11, 31);
let difference = end - start;
console.log(difference / (1000 * 60 * 60 * 24)); // Різниця в днях між двома датами.

Додатково, ви можете використовувати цей метод для обчислення різниці між датами, що дозволяє, наприклад, розраховувати вік користувача або термін дії підписки.

Конструктор Date() надає різноманітні методи для отримання та встановлення компонентів дати, таких як рік, місяць, день. Додатково, ви можете отримати день тижня, годину, хвилину, секунду та мілісекунду. Важливо пам'ятати, що Date() розрізняє локальний час від універсального (UTC), тому вам слід вибирати відповідний метод в залежності від потреб.

автор: Bond

Індивідуальні значення компонентів дати та часу

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

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

Рік: Якщо ви передаєте значення від 0 до 99, воно інтерпретується як роки 1900-1999. Отже, new Date(89, 0, 1) створює дату 1 січня 1989 року.

let date1 = new Date(89, 0, 1);
console.log(date1);  // Результат: Fri Jan 01 1989 00:00:00 GMT+0200

Місяць: Місяці розраховуються, починаючи з 0 для січня і до 11 для грудня. Якщо ви передаєте значення поза цим діапазоном, рік змінюється відповідно.

let date2 = new Date(2020, 12, 1);
console.log(date2);  // Результат: Sat Jan 01 2021 00:00:00 GMT+0200

День: Значення за замовчуванням - 1. Отже, якщо ви передаєте 0 або від'ємне значення, місяць "запозичує" дні з попереднього місяця.

let date3 = new Date(2020, 5, 0);
console.log(date3);  // Результат: Sun May 31 2020 00:00:00 GMT+0200

Година, хвилина, секунда, мілісекунда: Ці компоненти також автоматично коригуються при передачі значень поза їх діапазонами.

let date4 = new Date(2020, 5, 19, 25, 65);
console.log(date4);  // Результат: Sat Jun 20 2020 02:05:00 GMT+0200
автор: Bond

Порада

Передача значень, що виходять за рамки допустимих діапазонів, може призвести до неочікуваних результатів. Хоча Date() конструктор "автоматично коригує" переповнені компоненти, важливо розуміти, як це впливає на кінцевий результат, щоб уникнути помилок у логіці вашого застосунку.

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

Хоча вбудований конструктор Date() надає базові функції для роботи з датами, іноді може бути корисно звертатися до зовнішніх бібліотек, таких як moment.js або date-fns, для більш складних операцій. Ці бібліотеки надають зручні утиліти для роботи з датами, такі як форматування, робота з часовими поясами або додавання та віднімання дат.

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

При створенні дати з окремими компонентами, такими як рік, місяць або день, пам'ятайте, що вони будуть інтерпретовані як місцевий час. Якщо ви хочете створити дату в UTC, використовуйте Date.UTC(). Це допоможе вам уникнути плутанини з часовими поясами.

let utcDate = new Date(Date.UTC(2023, 0, 1));
console.log(utcDate); // Зверніть увагу на різницю у часі, яка може з'явитися в залежності від вашого місцевого часового поясу.
автор: Bond
Нотатка

Важливо зазначити, що місяці в Date() починаються з 0. Це одна з особливостей, яку слід завжди пам'ятати. Ця особливість може спричинити плутанину для новачків, але з часом стає зрозумілою. Крім того, робота з високосними роками вимагає особливого підходу, адже лютого може бути 28 або 29 днів.

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

Якщо ви створюєте новий об'єкт Date() без аргументів, він буде представляти поточний момент у часі. Однак важливо розуміти, що результат може відрізнятися в залежності від середовища виконання (браузера, сервера тощо) через різницю в часових поясах.

автор: Bond

Синтаксис

new Date()
new Date(value)
new Date(dateString)
new Date(dateObject)

new Date(year, monthIndex)
new Date(year, monthIndex, day)
new Date(year, monthIndex, day, hours)
new Date(year, monthIndex, day, hours, minutes)
new Date(year, monthIndex, day, hours, minutes, seconds)
new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds)

Date()

Повернення

object

Повертає новий об'єкт типу Date, який представляє конкретний момент у часі, залежно від наданих параметрів або поточний час і дату, якщо параметри не надані.

автор: Bond

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE
1 1 1 3 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 без будь-яких параметрів. Це автоматично дає нам поточний момент у часі. Після створення об'єкта, ми виводимо його значення, отримуючи поточний час та дату.

// Створення нового об'єкта дати без параметрів повертає поточний час і дату
let currentDate = new Date();

// Вивід поточної дати та часу
console.log(`Сьогоднішня дата та час: ${currentDate}`);
автор: Bond

У цьому прикладі ми створюємо специфічну дату, використовуючи конструктор Date() з трьома аргументами: рік, місяць та день. Важливо пам'ятати, що місяці рахуються з 0 (тобто 0 - це січень, а 11 - грудень), тому місяць 1 відповідає лютому. Ми використовуємо це для створення дати 14 лютого 2022 року та виводимо її.

// Створення об'єкта дати для 14 лютого 2022 року
let valentinesDay = new Date(2022, 1, 14);

// Вивід створеної дати
console.log(`День Святого Валентина у 2022 році випадає на: ${valentinesDay}`);
автор: Bond

Коментарі

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

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

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

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

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

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

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

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

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

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

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