24 вересня 2024 р.

Дата і час

Познайомтеся з новим вбудованим об’єктом: Date. Він зберігає дату, час і надає методи для управління датою/часом.

Наприклад, ми можемо використовувати його для зберігання часу створення/модифікації, щоб виміряти час, або просто для друку поточної дати.

Створення

Щоб створити новий об’єкт Date викличемо new Date() з одним з наступних аргументів:

new Date()

Без аргументів – створює об’єкт Date для поточної дати та часу:

let now = new Date();
alert( now ); // показує поточну дату/час
new Date(milliseconds)

Створює об’єкт Date з часом, що дорівнює кількості мілісекунд (1/1000 секунди), що минули після 1 січня 1970 UTC+0.

// 0 означає 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// тепер додамо 24 години, отримаємо 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );

Ціле число, яке являє собою кількість мілісекунд, що пройшли з початку 1970 року, називається міткою часу (timestamp).

Це легке числове представлення дати. Ми завжди можемо створити дату з timestamp за допомогою new Date(timestamp) і перетворити об’єкт Date, що існує, до timestamp за допомогою методу date.getTime() (див. нижче).

Дати до 01.01.1970 р. мають негативний timestamp, наприклад:

// 31 грудня 1969 року
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
new Date(datestring)

Якщо є єдиний аргумент, і це рядок, то він автоматично аналізується. Алгоритм той же, що використовує Date.parse, ми розглянемо це пізніше.

let date = new Date("2017-01-26");
alert(date);
// Час не встановлений, тому припускається, що це буде північ за GMT і
// регулюється відповідно до того часового поясу, де запускається код
// Тому результат може бути
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// або
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
new Date(year, month, date, hours, minutes, seconds, ms)

Створює дату з заданими компонентами у місцевому часовому поясі. Тільки перші два аргументи обов’язкові.

  • year має містити 4 цифри. Для сумісності також допускаються 2 цифри, які вважаються 19xx, напр. 98 тут те саме, що й 1998, але настійно рекомендується завжди використовувати 4 цифри.
  • Рахунок місяців починається з 0 (січня), до 11 (грудня).
  • Параметр date насправді день місяця, якщо він відсутній, то береться 1.
  • Якщо hours/minutes/seconds/ms відсутні, вони вважаються рівними 0.

Наприклад:

new Date(2011, 0, 1, 0, 0, 0, 0); // 1 січня 2011 року, 00:00:00
new Date(2011, 0, 1); // те ж саме, години тощо -- 0 за замовчуванням

Максимальна точність становить 1 мс (1/1000 сек):

let date = new Date(2011, 0, 1, 2, 3, 4, 567);
alert( date ); // 1.01.2011, 02:03:04.567