====== Date. Робота з часом ======
===== Date() - повернення поточного часу =====
Date — це об'єкт, що відображає певний момент часу. Створення дати без аргументів повертає об'єкт, що зберігає дату і час на момент його ініціалізації, тобто поточні дату і час.
const date = new Date();
console.log(date);
// "Fri Jun 18 2021 15:01:35 GMT+0300 (Eastern European Summer Time)"
===== Створення нового часу =====
Створюючи екземпляр класу Date, можна налаштувати різні формати відображення даних. Нижче приклад, де до класу Date передають рядок, який описує тільки дату.
console.log(new Date("2030")); // "Tue Jan 01 2030 02:00:00 GMT+0200"
console.log(new Date("2030-03")); // "Fri Mar 01 2030 02:00:00 GMT+0200"
console.log(new Date("2030-03-16")); // "Sat Mar 16 2030 02:00:00 GMT+0200"
console.log(new Date("2030-03-16T14:25:00")); // "Sat Mar 16 2030 14:25:00 GMT+0200"
Інший спосіб створення нової дати — це передати сім чисел, які описують рік, місяць (починається з 0), день, години, хвилини, секунди й мілісекунди. Обов'язкові тільки перші три.
const date = new Date(2030, 2, 16, 14, 25, 0, 0);
console.log(date); // "Sat Mar 16 2030 14:25:00 GMT+0200 "
===== Unix час =====
Для комп’ютерів відлік часу рахується в мілісекундах, що минули після опівночі 1 січня 1970 року в часовому поясі UTC (Coordinated Universal Time). Це — Unix час.
Під час ініціалізації дати одним числом, воно являє собою кількість мілісекунд, що вже минула з 01.01.1970.
console.log(new Date(0));
// "Thu Jan 01 1970 03:00:00 GMT+0300 (Eastern European Standard Time)"
console.log(new Date(15000));
// "Thu Jan 01 1970 03:00:15 GMT+0300 (Eastern European Standard Time)"
===== date.getTime() - повернення поточного часу у Unix мілісекундах =====
повертає числове значення цієї дати (timestamp) — кількість мілісекунд, що минула з півночі 1 січня 1970 року. (Unix час)
const date = new Date();
console.log(date.getTime()); // 1624021654154
===== date.now() =====
коли все, що потрібно, це числове представлення моменту часу, немає сенсу створювати цілий об'єкт. Можна використовувати метод Date.now() — це швидкий і зручний спосіб отримати поточний час у вигляді мілісекунд
const time = Date.now(); // 1693237207904
===== геттери класу Date =====
const date = new Date("March 16, 2030 14:25:00");
console.log("Date: ", date); // "Sat Mar 16 2030 14:25:00 GMT+0200"
// Повертає день місяця від 1 до 31
console.log("Day: ", date.getDate()); // 16
// Повертає день тижня від 0 до 6, починається з неділі
console.log("Day of the week: ", date.getDay()); // 6
// Повертає місяць від 0 до 11
console.log("Month: ", date.getMonth()); // 2
// Повертає рік з 4 цифр
console.log("Full year: ", date.getFullYear()); // 2030
// Повертає години
console.log("Hours: ", date.getHours()); // 14
// Повертає хвилини
console.log("Minutes: ", date.getMinutes()); // 25
// Повертає секунди
console.log("Seconds: ", date.getSeconds()); // 0
// Повертає мілісекунди
console.log("Milliseconds: ", date.getMilliseconds()); // 0
===== сеттери класу Date =====
const date = new Date("March 16, 2030 14:25:00");
date.setMinutes(50);
console.log(date); // "Sat Mar 16 2030 14:50:00 GMT+0200"
date.setFullYear(2040);
console.log(date); // "Fri Mar 16 2040 14:50:00 GMT+0200"
date.setMonth(4);
console.log(date); // "Wed May 16 2040 14:50:00 GMT+0300"