Date JS - Дата та час у JavaScript
Для роботи з датою та часом у JavaScript існує вбудований об'єкт Date, який містить методи для створення, зберігання, зміни або виведення елементів часу з точністю до мілісекунди. До таких елементів відносять: рік, місяць, день місяця, тиждень, годину, хвилину, секунду, мілісекунду, день тижня.
Створити об'єкт Date можна за допомогою аргументів:
- кількість мілісекунд - new Date(value);
- рядок - New Date(dateString) ;
- рік, місяць, день, години, хвилини, секунди, мілісекунди;
Або пропустити аргументи зовсім.
new Date()
Створимо екземпляр об'єкта Date без додаткових аргументів і виведемо результат у console.
let date = New Date(); console.log(date); // Thu Sep 01 2022 06:46:30 GMT+1200 (Фіджі) console.log(date.getFullYear()); // 2022
Отримаємо дату та час згідно з часовим поясом, який встановлено на локальному комп'ютері.
Таку саму інформацію ми можемо отримати написавши Date() без new .
let date = Date(); console.log(date); console.log(date.getFullYear()); // Отримаємо помилку
Однак у цьому випадку ми отримаємо рядок, об'єкт Date може бути створений тільки шляхом виклику функції-конструктора, а отже з використанням оператора new . Вбудовані методи, для роботи з датою JavaScript, з рядком працювати не будуть, крім Date.parse() .
New Date(value)
Створити об'єкт Date , можна передавши як аргумент кількість мілісекунд.
console.log(new Date(0)); // Thu Jan 01 1970 12:00:00 GMT+1200 (Фіджі) console.log(new Date(818079300000)); // Tue Dec 05 1995 00:15:00 GMT+1200 (Фіджі) console.log(new Date(-268065720000)); // Tue Jul 04 1961 21:18:00 GMT+1200 (Фіджі)
Результат = 1 січня 1970 UTC+0 + кількість мілісекунд.
Якщо вказати мілісекунди зі знаком мінус, відлік піде у зворотний бік. Таким чином, все, що зі знаком мінус буде відповідати даті до 1 січня 1970 року.
getTime()
Кількість мілісекунд, що пройшли з 1 січня 1970 року по сьогоднішній або заданий момент часу, називається timestamp і може бути отримана з new Date() за допомогою методу getTime() .
date = new Date(2019, 5); alert(date.getTime()); // кількість мілісекунд, що пройшли з 1 січня 1970 alert(new Date(date.getTime())) // отримуємо дату назад
Date.now()
Якщо необхідно отримати кількість мілісекунд, що пройшли з 1 січня 1970 року, на даний момент правильніше буде використовувати метод Date.now().
let date = Date.now(); alert(date);
Запис еквівалента new Date().getTime() , але на відміну від цієї конструкції Date.now() не створює проміжний об'єкт Date , що може бути особливо важливим при розробці, де упор йде на швидкодію.
New Date(dateString)
Створити об'єкт Date можна передавши як аргумент рядок з датою та часом.
date = new Date('2021-09-25T05:27:00'); alert(date); // Sun Sep 25 2022 05:27:00 GMT+1300 (Тонга)
Дата має бути записана у форматі зрозумілому методу Date.parse() , який перетворює рядок на кількість мілісекунд, що пройшли з 1 січня 1970 року UTC+0. Якщо формат запису буде неправильним, метод поверне NaN .
date = new Date('2021-09-25T05:27:00'); alert(Date.parse(date));
New Date(Year, month, date, hours, minutes, seconds, millisecond)
New Date (1995, 11, 4, 3, 15, 10, 0); // Mon Dec 04 1995 03:15:10 GMT-0600 (Центральна Америка)
Розглянемо всі можливі аргументи по порядку:
Обов'язкові аргументи
Рік (year) - Обов'язковий аргумент. Зазвичай записується повністю - всі чотири числа - 2022. Допустимий, але не рекомендується запис від 0 до 99. У цьому випадку рік буде інтерпретований, як 1900 + задане число.
Місяць (month) - обов'язковий аргумент та ціле число від 0 до 11, де перше це січень, а останнє грудень.
Необов'язкові аргументи
День (date) - необов'язковий аргумент, що означає день місяця, якщо не заданий, то за замовчуванням набуває значення 1. Відлік починається з одиниці.
Годинник (hours) - від 1 до 24
Хвилини (minutes) - від 1 до 60
Секунди (seconds) - від 1 до 60
Міллісекунди (millisecond) - від до 1000
Годинники, хвилини, секунди та мілісекунди – це цілі числа, якщо аргумент не заданий, то за замовчуванням приймається значення 0.
Якщо при створенні об'єкта Date як аргумент задано число більше або менше логічного діапазону, програма автоматично переформатує його в коректне, перенісши значення не сусіднє. Якщо рік 2010, а місяць 12 – це буде січень 2011 року. Якщо задати 10 годин 61 хвилину – це буде 11 годин 1 хвилина. Якщо місяць квітень, а день 0 це 31 березня.
Методи отримання елементів дати
getFullYear()
let date = new Date('1996-12-17T05:30:00'); date.getFullYear(); // 1996
Метод дозволяє отримати рік з об'єкта Date, якщо аргументів немає поверне поточний.
getMonth()
let date = new Date('1996-12-17T05:30:00'); date.getMonth(); // 11
Метод поверне місяць у форматі від 0 до 11, якщо аргументів немає поточного.
getDate()
let date = new Date('1996-12-17T05:30:00'); date.getDate(); // 17
Метод повертає день місяця вказаного в об'єкті, якщо аргументів немає поверне поточну дату за місцевим часом.
getHours(), getMinutes(), getSeconds(), getMilliseconds()
let date = new Date (1996, 11, 17, 21, 30, 10, 900); date.getHours(); // 21 чи 9 годин вечора date.getMinutes(); // 30 хвилин date.getSeconds(); // 10 секунд date.getMilliseconds(); 900 мілісекунд
Якщо аргумент відсутня, метод поверне 0.
getTimezoneOffset()
Метод повертає різницю в хвилинах між локальним часом та UTC.
let date = New Date().getTimezoneOffset(); alert(date); // за UTC +3 покаже -180
getDay()
let date = new Date (1996, 11, 17); date.getDay(); // 2
Метод повертає день тижня, відлік починається з 0 (неділя) та закінчується 6-ю (субота). У прикладі 1996 17 грудня і це вівторок, отже результат 2.
Встановлення компонентів дати та часу
Для того, щоб замінити або передати в об'єкт Date окремі компоненти часу використовують такі методи.
setFullYear(рік, [місяць], [день місяця])
setMonth(місяць, [день місяця])
setHours(годинник, [хвилини], [секунди], [мілісекунди])
setMinutes(хвилини, [секунди], [мілісекунди])
setTime() - встановлює час у Date рівною кількості мілісекунд минулих із січня 1970 р. UTC.
При використанні методів результат повертається в мілісекундах, що пройшли з 1 січня 1970 р. за часом, установленим на комп'ютері.
let date = new Date(2019, 0); // Tue Jan 01 2019 00:00:00 GMT+0300 (Москва) date.setFullYear(2021); 00 GMT+0300 (Москва)
У прикладі ми передали в об'єкт 2021 рік, який замінив 2019-й.
UTC-варіанти методів
Методи отримання та передачі елементів для об'єкта Date працюють відповідно до часу встановленого на комп'ютері. UTC.
Отримання елементів дати згідно з UTC:
getUTCFullYear() , getUTCMonth() , getUTCDate() , getUTCHours() , getUTCMinutes() , getUTCSeconds() , getUTCMilliseconds() , getUTCDay()
Встановлення компонентів дати та часу відповідно до UTC:
setUTCFullYear() , setUTCMonth() , setUTCDate() , setUTCHours() , setUTCMinutes() , setUTCSeconds() , setUTCMilliseconds()
Перетворення об'єкта Date на рядок
Для того, щоб отримати з Date потрібні елементи дати та часу у форматі рядка використовують такі методи:
toString() - дата та час
toTimeString() - лише час
toDateString() - лише дата
toUTCString() - дата та час у форматі UTC
toISOString() - дата та час у форматі ISO
toLocaleTimeString() - лише час у локальному форматі
toLocaleString() - дата та час у локальному форматі
let date = new Date(2018, 4, 19, 2, 34, 10); date.toString(); // Sat May 19 2018 2:34:10 GMT+0300 (Москва) date.toTimeString(); // 02:34:10 GMT+0300 (Москва) date.toDateString(); // Sat May 19 2018 date.toUTCString(); // Fri, 18 May 2018 23:34:10 GMT date.toISOString(); // 2018-05-18T23:34:10.000Z date.toLocaleTimeString(); // 02:34:10 date.toLocaleString(); // 19.05.2018, 02:34:10
Разом
1. Об'єкт Date може бути створений без аргументів або аргументів. У першому випадку отримаємо поточну часову мітку, у другому задаємо потрібний відрізок часу за допомогою мілісекунд, рядки з датою або аргументів (рік, місяць, день, години, хвилини, секунди, мілісекунди).
2. Для отримання окремих елементів Date використовують методи - getFullYear(), getMonth(), getDate(), getHours(), getMinutes(), getSeconds(), getMilliseconds(), getDay().
3. Для того, щоб встановити нові компоненти дати та часу використовують: setFullYear() , setMonth() , setDate() , setHours() , setMinutes() , setSeconds() , setMilliseconds() , setTime() .
4. Для отримання дати в потрібному форматі у вигляді рядка використовують: toString(), toTimeString(), toDateString(), toUTCString(), toISOString(), toLocaleTimeString(), toLocaleString().
5. При створенні Date незалежно незалежно від яких аргументів і в якому форматі передаються, створюється об'єкт з усіма елементами часу.
6. Якщо передати в Date аргументи часу некоректного формату (цілі числа), дата коригуватиметься перенесенням значення на сусіднє.
How to Get Current Date Time in JavaScript
In the modern web, майже every website we use is built using JavaScript. Час і час для користувача's visit are crucial to maintaining a record of their browsing pattern. JavaScript дає змогу використати Date object, який може бути використаний для отримання поточного часу і часу. Ми можемо виділити час і час від нього в будь-який день, де запозичена форма. У цьому розділі, ми повинні різні способи отримати поточний час в JavaScript відповідно до наших вимог.
Use the getDate() , getMonth() and getYear() Methods to Get Current Date in JavaScript
У цьому прикладі, ми бачимо різні частини часу, використовуючи свої специфічні методи. Date is extracted using getDate() , the month is extracted using getMonth() and the year is extracted using getYear() method. Упродовж місяця витрачено 0 index. Сен-digit day and month can be padded with 0 to make them both 2 digits. У нас є помітні результати з усіх 3 частин до кінця поточного часу.
let date =
new
Date();
let output =
String(date.getDate()).padStart(2, '0') +
'/'
+
String(date.getMonth() +
1).padStart(2, '0') +
'/'
+ date.getFullYear();
console.log(output);
Use the Date.toDateString() Method to Get Current Date in JavaScript
TheDateString() method returns day and date part of Date object. Відображається тип string, що містить 3 листи, що визначають день, 3 листи, що визначають місяць, наведені в день і день в numeric format. Цей метод є дуже сприятливим, що порівнюється з цим методом, де ми повинні використовувати окрему функцію для отримання часу, місяця, і року. Але якщо ми будемо отримувати в числовому форматі, то цей спосіб не дуже значний.
let date =
new
Date().toDateString();
console.log(date);
Use the Date.toISOString() Method to Get Current Date in JavaScript
Цей метод використовується для відновлення часу і часу в ISO 8601 форматі. Існує зазвичай відновлення відтворення в 24 characters long format such as YYYY-MM-DDTHH:mm:ss.sssZ . We can notice that the date and time are separated from each other by the letter T . Так, якщо ми визнаємо ISO Date/Time String by T, ми можемо отримати два strings, один містить в собі термін і інший взаємний термін. Це, ми можемо отримати поточний час від ISO string. Один з цих типовихpical thatoutput is separated by - instead of / . Так, один повинен використовувати різні методи як для потреби.
let date =
new
Date();
console.log(date.toISOString().split('T')[0]);
Use Inbuilt Method toLocaleDateString() to Get Current Date in JavaScript
Ця функція спрямована на отримання аналітичної-sensitive date portion of Date object. Locale argument specifies language tag and the country, and options help to customize it further. Але можна також використати, щоб отримати поточний час від часу об'єкта, що використовується.
let date =
new
Date();
console.log(date.toLocaleDateString());
Harshit Jindal має свої Bachelors in Computer Science Engineering(2021) від DTU. He has always been a problém solver і now turned that into his profession. Працює в M365 Cloud Security team(Torus) на Cloud Security Services і Datacenter Buildout Automation.
Related Article - JavaScript DateTime
Copyright © 2024. All right reserved