JavaScript Отримати поточний час і дату. JavaScript Отримати поточний час і дату Скрипт поточної дати

Ще одна корисна для сайтів річ - вставка поточної дати. Прикладів скриптів дати можна знайти в інтернеті десятки, проте багато з них, на мій погляд, великовагових і, отже, непривабливі. Тим часом, використовуючи стандартні засоби JavaScript, Вставити дату на сторінку сайту можна дуже просто. Я його дуже часто застосовую! На зображенні (скріншот з чинного сайту) садиби «Казка» !

Ось весь скрипт дати:

По-моєму, простіше нікуди, досить красиво і зрозуміло. Якщо у вас немає ніякого бажання вивчати побудову цього скрипта, то просто вставляйте його в будь-яке місце HTML-сторінки і отримаєте такий напис:

Ще один варіант більш розширений


! сьогодні

Виглядає він так:

сьогодні

Вобщем не потрібно ніяких навичок, просто тупо вставляємо код і все ок!

Детальніше:

Отже, починаємо з присвоєння значення дати змінної d, Потім створюємо масиви ( Array) Для днів тижня ( day) І місяців ( month), Вказуючи їх у необхідної граматичній формі: відмінок, число, заголовна буква, якщо слово стоїть на початку дати і т.п. Останній рядок скрипта - власне друк дати ( document.write). Тут ви встановлюєте, що і в якій послідовності будете виводити в рядку поточної дати. Компоненти відокремлюються одна від одної знаком + . Щоб додати пропуск використовується конструкція " " , А для однієї літери г (рік) - конструкція "Р"

Як видно з скрипта, отримання даних про поточний час виконує елемент get. Цей метод дозволяє отримати наступну інформацію:

  • getDate ()- повертає число від 1 до 31, що представляє число місяця;
  • getDay ()- повертає день тижня як ціле число від 0 (неділя) до 6 (субота);
  • getMonth ()- повертає номер місяця в році;
  • getFullYear ()- повертає рік. Якщо використовувати просто getYear (), То буде виводитися поточний рік мінус 1900;
  • get Hours ()- повертає час доби;
  • getMinutes ()- повертає хвилини як число від 0 до 59;
  • getSeconds ()- повертає число секунд від 0 до 59.

вставляти безпосередньо Java-скріпт всередину сторінки сайту не завжди зручно. Краще помістити опис скрипта в початок сторінки між тегами і задати змінну, яку будемо викликати в міру необхідності в тексті. назвемо її TODAYі визначимо в ній форму виведення дати аналогічно вищевикладеному. Скрипт буде виглядати наступним чином:

Для виведення дати викликаємо скрипт в потрібному місці HTML-коду сторінки, використовуючи наступну команду:

Якщо ваш сайт містить багато сторінок, на яких треба показувати дату, то зручніше виділити Java-скріпт виведення дати в окремий файл, наприклад, data.js. Практично, це сторінка, що складається з першого з описаних сценаріїв, тобто з рядком document.write(див. вище). Розташовувати її треба в тому ж каталозі, що і основна сторінка, і викликати в місці виведення дати наступним чином:

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

Зауваження. Слід мати на увазі, що описаний скрипт виводить дату, встановлену на комп'ютері користувача, що не завжди відповідає реальному поточному часу. Якщо вам необхідно показати точний час, то необхідно використовувати РНР-скрипт, який буде показувати час на сервері.

На цьому уроці ми познайомимося з об'єктом Date мови JavaScript і навчимося його використовувати на практиці.

Створення дати - 4 приклади

В JavaScript створення дати здійснюється за допомогою об'єкта Date. Об'єкт Date є точкою на осі часу і призначений для зберігання дати та часу з точністю до мілісекунди.

Приклади створення дати в JavaScript.

1. Створення поточної дати і часу.

Отримати поточну дату і час в JavaScript здійснюється за допомогою створення екземпляра об'єкта Dateбез вказівки параметрів:

// поточна дата (дата і час, яка була в момент створення екземпляра об'єкта Date на локальному комп'ютері користувача) var now = new Date (); // наприклад, виведемо поточну дату в консоль console.log (now);

Якщо потрібно отримати тільки сьогоднішню дату в форматі рядки, то можна скористатися методом toLocaleDateString:

Var now = new Date (). ToLocaleDateString (); // 19.12.2019

Часовий пояс користувача можна отримати так:

Var now = new Date (). ToLocaleTimeString (); // 11:02:48 var now = new Date (). ToLocaleTimeString (). Slice (0, -3); // 11:02

Дату і час в форматі рядки можна отримати наступним чином:

Var now = new Date (). ToLocaleString (); // 19.12.2019, 11:02:48

2. Створення дати шляхом вказівки об'єкту Date кількості мілісекунд, що пройшли з 1 січня 1970 00:00:00 UTC.

// 1 рік (НЕ високосний) = 365 * 24 * 60 * 60 * 1000 = 31536000000 мс // наприклад, створимо дату 01.01.1971, 00:00:00 по UTC: var date1 = new Date (31536000000);

3. Створення дати за допомогою вказівки її об'єкту Date у вигляді рядка.

При цьому варіанті створення дати JavaScript спробує зрозуміти передану їй рядок і сформувати на основі її дату. Перетворення рядка в дату в JavaScript здійснюється за допомогою методу Date.parse.

наприклад:

// створення дати на основі рядка в форматі DD.MM.YY var date1 = new Date ( "05.11.19"); // створимо дату на основі рядка в форматі YYYY-MM-DDThh: mm: ss.sss (символ T використовується для поділу дати і часу) var date2 = new Date ( "2015-02-24T21: 23"); // створимо дату на основі рядка із зазначенням часового поясу (формат YYYY-MM-DDThh: mm: ss.sss ± hh: mm): var date3 = new Date ( "2015-02-24T22: 02 + 03: 00") ;

4. Створення дати за допомогою вказівки наступних параметрів через кому:рік (4 цифри), місяць (відлік ведеться з 0), день (1..31), годинник (0..23), хвилини (0..59), секунди (0..59), мілісекунди (0. .999). Причому обов'язковими з них є тільки перші два параметра.

Приклад створення дати із зазначенням тільки обов'язкових параметрів:

// створимо дату 01.01.2015 (не вказані параметри за замовчуванням рівні: число - 01, годинник - 00, хвилини - 00, секунди - 00, мілісекунди - 000). var date1 = new Date (2015,01); // створимо дату 24.01.2015, 21:23 var date2 = new Date (2015,01,24,21,23);

Примітка: Якщо Вам необхідно встановити дату і час в UTC, то можна скористатися методом Date.UTC.

// 1 приклад var date1 = Date.UTC (2015,1,1); var date2 = new Date (date1); alert (date2.toUTCString ()); // 2 приклад var newDate = new Date (Date.UTC (2015,1,1)); alert (newDate.toUTCString ());

Отримання окремих компонентів дати і часу

В JavaScript для отримання окремих компонентів дати і часу призначені наступні методи:

  • getFullYear () - повертає рік, що складається з 4 чисел;
  • getMonth () - повертає місяць в форматі числа від 0 до 11 (0 - січень, 1 - лютий, 2 - березень, ..., 11 - грудень);
  • getDate () - повертає число місяця від 1 до 31;
  • getHours () - повертає кількість годин від 0 до 23;
  • getMinutes () - повертає кількість хвилин від 0 до 59;
  • getSeconds () - повертає кількість секунд від 0 до 59;
  • getMilliseconds () - повертає кількість мілісекунд від 0 до 999.

Всі ці методи повертають окремі компоненти дати і часу відповідно до часового поясу встановленому на локальному пристрої користувача.

// створимо дату 11.11.2019 00:00 по UTC var newDate = new Date (Date.UTC (2019,11,11)); // отримаємо компоненти дати, якщо на пристрої користувача місцевий час одно UTC + 10: 00 newDate.getFullYear (); // 2019 newDate.getMonth (); // 10 newDate.getDate (); // 11 newDate.getHours (); // 10 newDate.getMinutes (); // 0 newDate.getSeconds (); // 0 newDate.getMilliseconds (); // 0

Приклад, в якому привітаємо користувача в залежності від того який зараз у нього інтервал часу:

// отримаємо даний час користувача і компоненти цього часу var now = new Date (), hour = now.getHours (), minute = now.getMinutes (), second = now.getSeconds (), message = ""; // визначимо фразу вітання в залежності від місцевого часу користувача if (hour<= 6) { message = "Доброе время суток"; } else if (hour <= 12) { message = "Доброе утро"; } else if (hour <= 18) { message = "Добрый день"; } else { message = "Добрый вечер"; } // выполним форматирование времени с использованием тернарного оператора minute = (minute < 10) ? "0" + minute: minute; second = (second < 10) ? "0" + second: second; hour = (hour < 10) ? "0" + hour: hour; message += ", сейчас " + hour + ":" + minute + ":" + second; // выведем приветствие и время в консоль console.log(message); // Добрый вечер, сейчас 22:50:39

У цьому прикладі висновок часу в потрібному форматі здійснений з використанням тернарного оператора.

В JavaScript є аналоги цих методів для отримання окремих компонентів дати і часу для часового поясу UTC + 0. Ці методи називаються аналогічно, але з доданим «UTC» після «get»: getUTCFullYear (), getUTCMonth (), getUTCDate (), getUTCHours (), getUTCMinutes (), getUTCSeconds (), getMilliseconds ().

Отримати номер дня тижня в JavaScript можна за допомогою методу getDay ().

Даний метод повертає число від 0 до 6 (0 - неділя, 1 - понеділок, ..., 6 - субота).

Приклад, в якому переведемо день тижня з числового в строкове представлення:

Var days = [ "Воскресенье", "Понедельник", "Вiвторок", "Середовище", "Четвер", "П'ятниця", "Суббота"]; // отримаємо поточну дату var now = new Date (); // виведемо в консоль день тижня console.log ( "Сегодня" + days);

Отримати кількість мілісекунд пройшли з 01.01.1970 00:00:00 UTC в JavaScript можна за допомогою методу getTime ().

Дізнатися різницю (в хвилинах) між часовим поясом локального пристрою і UTC в JavaScript можна за допомогою методу getTimezoneOffset ().

Установка окремих компонентів дати і часу

В JavaScript встановити окремі компоненти дати і часу можна за допомогою таких методів об'єкта Date:

  • setFullYear (year [, month, date]) - установка року (додатково можна поставити ще місяць і число);
  • setMonth (month [, date]) - установка місяці від 0 до 11 (0 - січень, 1 - лютий, 2 - березень, ..., 11 - грудень); додатково цей метод дозволяє ще встановити число;
  • setDate (date) - установка числа;
  • setHours (hour [, min, sec, ms]) - встановлює час від 0 до 23 (додатково можна ще встановити хвилини, секунди і мілісекунди);
  • setMinutes (min [,) - устаналівает хвилини від 0 до 59 (додатково можна встановити ще секунди і мілісекунди);
  • setSeconds (sec,) - встановлює секунди від 0 до 59 (додатково можна встановити ще мілісекунди);
  • setMilliseconds (ms) - встановлює мілісекунди (від 0 до 999).

Всі ці методи призначені для установки дати і часу в часовому поясі, установленому на комп'ютері користувача.

// створимо екземпляр об'єкта Date, містить поточну дату var newDate = new Date (); // встановимо рік newDate.setFullYear (2019); // встановимо рік і місяць newDate.setFullYear (2019, 08); // встановимо 20.09.2019 newDate.setFullYear (2019, 08, 20); // встановимо місяць newDate.setMonth (05); // встановимо місяць і число newDate.setMonth (05, 15); // встановимо число newDate.setDate (28); // встановимо годину newDate.setHours (13); // встановимо годину і хвилини newDate.setHours (13,20);

В JavaScript установка дати і часу в часовому поясі UTC + 0 здійснюється за допомогою таких методів: setUTCFullYear (), setUTCMonth (), setUTCDate (), setUTCHours (), setUTCMinutes (), setUTCSecondes (), setUTCMilliseconds ().

Установка дати і часу за допомогою кількості мілісекунд, що пройшли з 01.01.1970 00:00:00 UTC здійснюється за допомогою і тоді setTime ().

Крім цього, в JavaScript вказівку некоректних компонентів дати й часу не призводить до помилок, вони просто автоматично розподіляться по іншим.

наприклад:

// число 44 розподілиться таким чином: 44 - 31 = 13, 13 лютого 2019 newDate.setFullYear (2019, 01, 44);

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

// дата, яка буде більше newDate на 7 днів newDate.setDate (date1.getDate () + 7); // дата, яка буде менше newDate на 120 секунд newDate.setSeconds (date1.getSeconds () - 120); // так можна встановити останнє число попереднього місяця для newDate newDate.setDate (0);

Перетворення дати в рядок і її форматування

В JavaScript методи, які виконують перетворення дати в рядок, можна розділити на 2 групи.

До першої групи можна віднести методи, які виконують це так, як це визначено в браузері: toString (), toDateString (), toTimeString (), toUTCString ().

Метод toString () повертає повне уявлення дати, toDateString () - тільки дату, toTimeString () - тільки час, toUTCString () - повне уявлення дати, але в часовому поясі UTC + 0.

Оскільки рядкові уявлення, які повинні повертати ці методи чітко не визначені в стандарті, то вони можуть відрізнятися в різних браузерах.

До другої групиможна віднести методи з урахуванням часового поясу і мови локального комп'ютера: toLocaleString () - дату і час, toLocaleDateString () - тільки дату, toLocaleTimeString () - тільки час.

Методи toLocaleString (), toLocaleDateString (), toLocaleTimeString () мають 2 необов'язкові параметри. Перший параметр призначений для явної вказівки локалі, другий - для завдання опцій форматування.

Якщо локаль явно не встановлена ​​або undefined, то браузер бере ту, яку він має за замовчуванням.

Крім цього, в JavaScript є ще метод toISOString (). Він повертає рядок, що містить дату і час у форматі ISO (YYYY-MM-DDTHH: mm: ss.sssZ).

// створимо дату 15.04.2019 18:43:59 (в часовому поясі користувача) var newDate = new Date (2019, 03, 15, 18, 43, 59); console.log (newDate.toString ()); // Mon Apr 15 2019 18:43:59 GMT + 1000 (Владивосток, стандартний час) console.log (newDate.toDateString ()); // Mon Apr 15 2019 console.log (newDate.toTimeString ()); // 18:43:59 GMT + 1000 (Владивосток, стандартний час) console.log (newDate.toLocaleString ()); // 15.04.2019, 18:43:59 console.log (newDate.toLocaleDateString ()); // 15.04.2019 console.log (newDate.toLocaleTimeString ()); // 18:43:59 console.log (newDate.toUTCString ()); // Mon, 15 Apr 2019 8:43:59 GMT console.log (newDate.toISOString ()); // 2019-04-15T08: 43: 59.000Z

Метод для перетворення рядка в дату

JavaScript для перетворення рядка в дату використовує метод Date.parse (). Цей метод може перетворити рядок, якщо вона виконана відповідно до стандарту RFC2822 або ISO 8601.

У цьому уроці розглянемо стандарт ISO 8601, в якому рядок повинен мати такий вигляд: YYYY-MM-DDThh: mm: ss.sssZ.

  • YYYY - рік, що складається з 4 цифр;
  • MM - місяць, що складається з 2 цифр (01 = січень, 02 = Февраль, і т.д.);
  • DD - день місяця, що складається з 2 цифр (01..31);
  • T - символ для розділення дати і часу;
  • hh - кількість годин (00..23);
  • mm - кількість хвилин (00..59);
  • ss - кількість секунд (00..59);
  • sss - кількість мілісекунд (0..999);
  • Z - символ, який означає, що час задається в форматі UTC. Якщо Вам необхідно замість UTC встановити часовий пояс, то букву "Z" слід замінити значенням + hh: mm або -hh.mm.

Якщо рядок, що містить дату і час, задана не в форматі RFC2822 або ISO 8601, то метод JavaScript Date.parse () все одно може виконати її перетворення, але результат в цьому випадку можуть виявитися непередбачуваним.

JavaScript - Урок 11. Дата, уявлення і обробка

В JavaScript дата визначається кількістю мілісекунд, що пройшли з 1 січня 1970 року.

Для роботи з датою і часом застосовується вбудований об'єкт Date. Цей об'єкт не має властивостей, але володіє декількома методами, що дозволяють встановлювати і змінювати дату і час.

об'єкт Dateстворюється за допомогою оператороа newі конструктора - Date.

наприклад:

var myData = new Date ();

значенням змінної myDataбуде поточна дата і час:

методами об'єкта Dateможна отримувати окремо значення місяця, дня тижня, годин, хвилин і секунд:

  • getDate- повертає число в діапазоні від 1 до 31, що представляє число місяця.
  • getHours- повертає час доби в діапазоні від 0 (опівночі) до 23.
  • getMinutes- повертає хвилини в діапазоні від 0 до 59.
  • getSeconds- повертає секунди в діапазоні від 0 до 59.
Припустимо, ми хочемо написати сценарій, який буде визначати поточний час і виводити його в форматі "чч: мм: сс".

Javascript дата

Тепер напишемо саму функцію nTime ():

function nTime (obj) (var t = new Date (); var h = t.getHours (); var m = t.getMinutes (); var s = t.getSeconds (); var result = h + ":" + m + ":" + s; obj.res.value = result;)

* Як ви пам'ятаєте методи відокремлюються від об'єкта точкою, про це ми говорили в уроці 3 *Як бачите, все просто. Спочатку визначаємо поточний час, а потім за допомогою методів витягаємо з нього окремі значення годин, хвилин і секунд.

Тут ще хочеться пояснити рядок var result = h + ":" + m + ":" + s. Вперше ми зіткнулися з необхідністю виводити в результат, як значення змінних, так і простий текст. В принципі нічого складного: змінні пишуться як є, текст береться в лапки, а знак + здійснює операцію конкатенації, тобто їх об'єднання.

У нашому прикладі залишився один недолік, ми хотіли, щоб час виводилося в форматі "чч: мм: сс", а зараз воно виводиться в форматі "ч: м: з". Тобто, в 5 ранку, час буде відображатися як "5: 0: 0", а хотілося б так: "5:00:00" (що більш звично). В якості домашнього завдання можете спробувати це виправити. Наприклад, за допомогою оператора ifі строкового литерала "0" (ідея проста: якщо годин менше 10, то в результат перед hнаписати "0" і так з усіма змінними).

А поки продовжимо вивчати методи об'єкта Date:

  • getDay- повертає день тижня, як ціле число від 0 (неділя) до 6 (субота).
  • getMonth- повертає номер місяця в році, як ціле число від 0 (січень) до 11 (грудень).
  • getYear- повертає рік у вигляді двох останніх цифр ( getFullYear- повертає рік у вигляді чотирьох цифр).

    * На жаль, починаючи з 2000 року, є проблема з відображенням року в різних браузерах. Метод getYear в IE відображає повний рік (замість двох останніх цифр), а FireFox замість XX відображає 1XX (тобто підставляє 1). Тому краще використовувати метод getFullYear.

Давайте напишемо сценарій, який буде визначати поточну дату і виводити її в форматі "число місяць рік".

Код html-сторінки буде простий:

Javascript дата

Тепер напишемо саму функцію tData ():

Function tData (obj) (var s; var t = new Date (); var y = t.getFullYear (); var d = t.getDate (); var mon = t.getMonth (); switch (mon) (case 0: s = "січня"; break; case 1: s = "лютого"; break; case 2: s = "березня"; break; case 3: s = "квітня"; break; case 4: s = "травні "; break; case 5: s =" червня "; break; case 6: s =" липня "; break; case 7: s =" серпня "; break; case 8: s =" вересня "; break; case 9 : s = "жовтня"; break; case 10: s = "листопада"; break; case 11: s = "грудня"; break;) var result = d + "" + s + "" + y; obj.res.value = result;)

Вийшло достовірніше, ніж в першому прикладі, тому що доводиться переводити на російську мову назви місяців.

Розглянуті вище методи дозволяють отримувати дату. Якщо ж нам потрібно встановити дату, то слід використовувати такі методи:

  • setDate- встановлює число місяця в діапазоні від 1 до 31.
  • setHours- встановлює час для поточного часу в діапазоні від 0 (опівночі) до 23.
  • setMinutes- встановлює хвилини в діапазоні від 0 до 59.
  • setSeconds- встановлює секунди в діапазоні від 0 до 59.
  • setYear- встановлює значення року.
  • setMonth- встановлює значення місяця в діапазоні від 0 (січень) до 11 (грудень).
  • setTime- встановлює значення об'єкта Dateі повертає кількість мілісекунд, що пройшли з 1 січня 1970 року.
Так, якщо нам буде потрібно задати дату 06 грудня 2010 року, в функції ми будемо мати наступний код:

Var t = new Date (); var y = t.setYear (2010); var d = t.setDate (6); var mon = t.setMonth (11); ...

Задати дату можна прямо в конструкторі, вказавши в якості параметра рядок формату "місяць, день, рік години: хвилини: секунди":

Var t = new Date ( "Feb, 10,1975 17:45:10");

Значення годин, хвилин і секунд можна опустити (вони дорівнюватимуть нулю):

Var t = new Date ( "Feb, 10,1975");

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

Var t = new Date (75, 1, 10, 17, 45, 10);

Або ж, опускаючи години, хвилини і секунди (вони дорівнюватимуть нулю):

Var t = new Date (75, 1, 10);

* Є проблема: IE рік відображати не хоче, тому краще ці варіанти не використовувати.

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

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

об'єкт Date

Date - це вбудований об'єкт JavaScript, який зберігає дату і час. Він надає ряд вбудованих методів для форматування і управління цими даними.

За замовчуванням новий екземпляр Date без аргументів створює об'єкт з поточною датою і часом відповідно до системних налаштувань грошової поточного комп'ютера.

Для прикладу спробуйте привласнити змінної поточну дату. Створіть файл now.js.

// Set variable to current date and time
const now = new Date ();
// View the output
now;
Wed Oct 18 2017 12:41:34 GMT + 0000 (UTC)

У висновку виходить рядок з датою, яка містить наступні дані:

Дата і час розбиваються і відображаються зручним для сприйняття чином.

Однак JavaScript сприймає дату, виходячи з тимчасової мітки Unix-часу, яка представляє собою значення, що складається з кількості мілісекунд, що пройшли з півночі 1 січня 1970 року. Отримати мітку часу можна за допомогою методу getTime ().

// Get the current timestamp
now.getTime ();
1508330494000

Велике число, яке з'являється у висновку в якості поточної тимчасової мітки, являє собою кількість мілісекунд, що пройшли з півночі 1 січня 1970 року на 18 жовтня 2017 року.

Нульове час (або epoch time) представлено рядком дати 01 January, 1970 00:00:00 Universal Time (UTC) і часовою міткою 0. Ви можете перевірити це в браузері, створивши в файлі epoch.js нову змінну і присвоївши їй новий екземпляр Date , заснований на позначці часу 0.

// Assign the timestamp 0 to a new variable
const epochTime = new Date (0);
epochTime;
01 January, 1970 00:00:00 Universal Time (UTC)

Нульове час було вибрано в якості стандарту для вимірювання часу комп'ютерами, і цей метод використовується в JavaScript. Важливо розуміти тимчасові мітки і рядки дат, оскільки ці поняття можуть використовуватися в залежності від налаштувань і цілі програми.

Тепер ви знаєте, як створити новий екземпляр Date на основі поточного часу і на основі тимчасової мітки. В цілому існує чотири формату Date в JavaScript. Крім поточного часу за замовчуванням і тимчасової мітки також можна використовувати рядок дати або вказати конкретну дату і час.

Щоб продемонструвати різні способи посилань на конкретну дату, спробуйте створити нові об'єкти Date, які представлятимуть 4 липня 1776 року, 12:30 за Гринвічем трьома різними способами.

// Timestamp method
new Date (-6106015800000);
// Date string method
new Date ( "January 31 1980 12:30");
// Date and time method
new Date (1776, 6, 4, 12, 30, 0, 0);

Всі ці приклади представляють одну і ту ж інформацію про дату і час трьома різними способами.

Як бачите, метод тимчасової мітки має негативне число; будь-яка дата до нульового часу буде представлена ​​як негативне число.

У третьому прикладі секунди і мілісекунди представлені 0. Якщо при створенні об'єкта Date вам не вистачає будь-яких даних, ви повинні привласнити їм 0. Відсутні дані не можна пропускати, оскільки порядок даних про час в рядку не змінюється. Також слід зазначити, що місяць липень тут позначений як 6, а не як 7. Це відбувається тому, що відлік починається не з 1, а з 0. Детальніше про це - в наступному розділі.

Витяг дати за допомогою get

Маючи дату, ви можете отримати доступ до всіх її компонентів за допомогою різних вбудованих методів. Методи повертають кожну частину дати щодо локального часового поясу. Кожен з цих методів починається з get і повертає відносне число. Нижче наведена докладна таблиця методів get для об'єкта Date.

Дата час метод Діапазон приклад
рік getFullYear () YYYY 1970
місяць getMonth () 0-11 0 = January
день місяця getDate () 1-31 1 = 1st of the month
День тижня getDay () 0-6 0 = Sunday
Годину getHours () 0-23 0 = midnight
хвилина getMinutes () 0-59
секунда getSeconds () 0-59
мілісекунда getMilliseconds () 0-999
тимчасова мітка getTime ()

// Initialize a new birthday instance
const birthday = new Date (1980, 6, 31);

Тепер можна використовувати всі методи для вилучення кожного компонента дати.

birthday.getFullYear (); // 1980
birthday.getMonth (); // 6
birthday.getDate (); // 31
birthday.getDay (); // 4
birthday.getHours (); // 0
birthday.getMinutes (); // 0
birthday.getSeconds (); // 0
birthday.getMilliseconds (); // 0
birthday.getTime (); // 333849600000 (for GMT)

Іноді буває необхідно витягти тільки частина дати, і вбудовані методи get допоможуть вам в цьому.

Наприклад, можна порівняти поточну дату з датою 3 жовтня, щоб дізнатися, 3 жовтня зараз чи ні.

// Get today "s date
const today = new Date ();
// Compare today with October 3rd
if (today.getDate () === 3 && today.getMonth () === 9) (
console.log ( "It" s October 3rd. ");
) Else (
console.log ( "It" s not October 3rd. ");
}
It "s not October 3rd.

Вбудовані методи get дозволяють отримувати доступ до компонентів дати.

Зміна дати за допомогою set

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

Дата час метод Діапазон приклад
рік setFullYear () YYYY 1970
місяць setMonth () 0-11 0 = January
день місяця setDate () 1-31 1 = 1st of the month
День тижня setDay () 0-6 0 = Sunday
Годину setHours () 0-23 0 = midnight
хвилина setMinutes () 0-59
секунда setSeconds () 0-59
мілісекунда setMilliseconds () 0-999
тимчасова мітка setTime () Кількість мілісекунд з нульового часу

Ці методи set можна використовувати для зміни одного або декількох компонентів дати. Наприклад, можна змінити рік в змінної birthday на 1997.

// Change year of birthday date
birthday.setFullYear (1997);
birthday;
Thu Jul 31 +1997 00:00:00 GMT + 0000 (UTC)

Тепер при виклику змінної birthday ви бачите НЕ 1980, а 1997 год.

Вбудовані методи set дозволяють змінювати різні частини об'єкта Date.

методи UTC

Методи get, описані вище, витягають компоненти дати на основі локальних налаштувань часового поясу користувача. Щоб збільшити контроль над датами і часом, ви можете використовувати методи getUTC, які працюють так само, як методи get, але обчислюють час, засноване на стандарті UTC (всесвітній координований час). Нижче наведена таблиця методів UTC для об'єкта Date в JavaScript.

Дата час метод Діапазон приклад
рік getUTCFullYear () YYYY 1970
місяць getUTCMonth () 0-11 0 = January
день місяця getUTCDate () 1-31 1 = 1st of the month
День тижня getUTCDay () 0-6 0 = Sunday
Годину getUTCHours () 0-23 0 = midnight
хвилина getUTCMinutes () 0-59
секунда getUTCSeconds () 0-59
мілісекунда getUTCMilliseconds () 0-999

Щоб перевірити різницю між локальними методами get та методами get UTC, запустіть наступний код.

// Assign current time to a variable
const now = new Date ();
// Print local and UTC timezones
console.log (now.getHours ());
console.log (now.getUTCHours ());

Цей код виведе поточний час і час за часовим поясом UTC. Якщо ви зараз перебуваєте в часовому поясі UTC, то числа, які виведе програма, будуть однаковими.

UTC надає міжнародний стандарт часу і тому може підтримувати код відповідно до часового поясу, якщо це необхідно в вашій програмі.

висновок

У цьому мануалі ви дізналися, як створити екземпляр об'єкта Date, як використовувати його вбудовані методи для доступу і зміни компонентів певної дати. Більш детальну інформацію про час і дату в JavaScript ви можете знайти на Mozilla Developer Network.

Уміння працювати з датами важливо для багатьох загальних завдань в JavaScript: від створення регулярних звітів до відображення дат і розкладів в правильному часовому поясі.

Tags:

Для роботи з датою і часом в JavaScript існує спеціальний об'єкт - Date. Цей об'єкт підтримується практично всім версіями JavaScript, а зачит їм можна користуватися не озираючись на проблеми сумісності.

Дата і час в об'єкті Date зберігаються не в явному вигляді, а як і в більшості мов програмування - у вигляді кількості мілісекунд, що пройшли з дня народження Unix, тобто з 0 годин 0 хвилин 1 січня 1970 року. Відмітна особливість об'єкта Date - все діапазонні значення мають індекси, що починаються з нуля. Це означає, що січень буде мати індекс 0 (місяць №0), а грудень буде не дванадцятим, а одинадцятим місяцем. Те ж саме справедливо і для днів тижня, годин, хвилин і ін.

Створити об'єкт Date дуже просто:

// поточна дата-час var date = new Date (); // дата-час з рядка або числа var date = new Date (дата); // дата-час з окремих значень var date = new Date (рік, місяць, день, година, хвилина, секунда, мілісекунда);

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

Методи отримання компонентів дати-часу
getFullYear Повертає рік (наприклад, 2011).
getYear Повертає рік. Призначення методу getYear аналогічно призначенню getFullYear, проте даний метод є застарілим і не рекомендуються до використання, тому що результати його роботи не однозначні: для діапазону дат від 1900 до 1999 року метод повертає номер року в столітті (двозначний, наприклад 77), а для дат за межами цього діапазону - повертається повне значення (чотиризначне, наприклад 2009).
getMonth Повертає місяць.
getDate Повертає день місяця (число у місяці).
getHours Повертає годину.
getMinutes Повертає хвилину.
getSeconds Повертає секунду.
getMilliseconds Повертає мілісекунди.
getDay Повертає номер деня тижні.
getTime Повертає мілісекунди зміщення, збережене об'єктом.
Методи зміни компонентів дати-часу
setFullYear Встановлює рік.
setYear Встановлює рік. Призначення методу setYear аналогічно призначенню setFullYear, проте даний метод є застарілим і не рекомендуються до використання (так само як і метод getYear).
setMonth Встановлює місяць.
setDate Встановлює дату в місяці (день місяця).
setHours Встановлює годину.
setMinutes Встановлює хвилину.
setSeconds Встановлює секунду.
setMilliseconds Встановлює мілісекунди.
setTime Встановлює мілісекунди зміщення щодо 00:00:00 01.01.1970
Фунции форматування і виведення дати-часу
toString Повертає строкове представлення дати і часу.
toUTCString Повертає строкове представлення дати і часу з перерахунком на час UTC. Формат повертається рядка враховує всі інтернет-стандарти.
toGMTString Повертає строкове представлення дати і часу з перерахунком на час GMT (час за Гринвічем). Формат повертається рядка враховує всі інтернет-стандарти.
toLocaleString Аналог toString, але повертає строкове представлення дати і часу, відформатований відповідно до настройками локалізації даного користувача.
toTimeString Повертає строкове представлення часу (рядок містить тільки час).
toDateString Повертає строкове представлення дати (рядок містить тільки дату).
toLocaleTimeString Аналог toTimeString, але повертає строкове представлення часу, відформатований відповідно до настройками локалізації користувача.
toLocaleDateString Аналог toDateString, але повертає строкове представлення дати, відформатований відповідно до настройками локалізації користувача.
Додаткові функції
getTimezoneOffset Повертає зсув локального часу на комп'ютері користувача щодо часу UTC. Зсув повертається в хвилинах.
parse Функція дозволяє перевірити коректність дати-часу, записаних у вигляді рядка. Якщо рядок коректна - відразу буде створений об'єкт Date.

Так само об'єкт Date містить ряд методів для роботи з UTC-датами. Ці функції повністю аналогічні вже розглянутих, але містять в імені префікс "UTC" і працюють тільки з "універсальним" часом: getUTCSeconds, setUTCFullYear і т.д.

Розглянемо приклад роботи з датами:

А ось результат роботи цього скрипта:


Як бачите, уявлення дати істотно відрізняється в залежності від використовуваного формату. Тому при роботі з датою-часом треба дотримуватися кількох простих правил:

1. По можливості користуватися UTC або GMT-форматами. Особливо це важливо при создани розподілених рішень (наприклад, клієнтів платіжних систем). Використання загального опорного часу дасть вам гарантії (нехай і не стовідсоткові), що і ви і ваш віддалений партнер будете однаково інтерпретувати ці дані.

2. Локалізовані дату і час має сенс використовувати тільки при виведенні їх користувачеві. У всіх інших випадках від локалізованих даних краще відмовитися.

3. Якщо все ж доводиться використовувати локальні дату і час - не забувайте враховувати зміщення локального часу щодо опорного (UTC або GMT).

Дотримання цих правил позбавить вас від більшості логічних багів і недоліків, а значить зробить ваш код більш стабільним і якісним.

Сподобалася стаття? Поділіться з друзями!