diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
commit | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch) | |
tree | a9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/global_objects/date/index.html | |
parent | 074785cea106179cb3305637055ab0a009ca74f2 (diff) | |
download | translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2 translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip |
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/date/index.html')
-rw-r--r-- | files/uk/web/javascript/reference/global_objects/date/index.html | 269 |
1 files changed, 269 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/date/index.html b/files/uk/web/javascript/reference/global_objects/date/index.html new file mode 100644 index 0000000000..61c26eb1d8 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/date/index.html @@ -0,0 +1,269 @@ +--- +title: Date +slug: Web/JavaScript/Reference/Global_Objects/Date +tags: + - Date + - JavaScript + - Time + - Дата + - Час Unix +translation_of: Web/JavaScript/Reference/Global_Objects/Date +--- +<div>{{JSRef}}</div> + +<div>Об'єкт JavaScript <strong><code>Date</code></strong> відображає єдиний момент у часі у незалежному від платформи форматі. Об'єкти <code>Date</code> містять число, яке відображає кількість мілісекунд від 1 січня 1970 року за UTC.</div> + +<div></div> + +<div class="blockIndicator note"> +<p>TC39 працює над об'єктом <a href="https://tc39.es/proposal-temporal/docs/index.html">Temporal</a>, новим API для дати та часу.<br> + Читайте більше щодо нього у <a href="https://blogs.igalia.com/compilers/2020/06/23/dates-and-times-in-javascript/">блозі Igalia</a> та заповнюйте <a href="https://forms.gle/iL9iZg7Y9LvH41Nv8">опитування</a>. Він потребує відгуків реальних веб-розробників, але поки що не готовий для повноцінного використання!</p> +</div> + +<h2 id="Опис">Опис</h2> + +<h3 id="Час_ECMAScript_та_часові_мітки">Час ECMAScript та часові мітки</h3> + +<p>Дата JavaScript вказується як кількість мілісекунд, що пройшли від 1 січня 1970 року за UTC. Ця дата та час не є тим самим, що й <strong>час UNIX</strong> (кількість <em>секунд</em>, що пройшли від опівночі 1 січня 1790 року за UTC), який є базовим значенням для дати та часу, що записуються комп'ютером.</p> + +<p><strong>Заувага:</strong> Важливо пам'ятати, що, тоді як значення часу в серці об'єкта Date є значенням UTC, базові методи з отримання дати та часу, або їхніх елементів, усі працюють у локальному (тобто, системному) часовому поясі та зсуві.</p> + +<p>Варто зауважити, що максимальне значення <code>Date</code> не співпадає з максимальним безпечним цілим числом (<code>Number.MAX_SAFE_INTEGER</code> дорівнює 9,007,199,254,740,991). Натомість, ECMA-262 визначає, що максимум ±100,000,000 (сто мільйонів) днів відносно 1 січня 1970 року за UTC (тобто, 20 квітня 271821 до н.е. ~ 13 вересня 275760 н.е.) можуть бути представлені стандартним об'єктом <code>Date</code> (що дорівнює ±8,640,000,000,000,000 мілісекундам).</p> + +<h3 id="Формат_дати_та_перетворення_часових_поясів">Формат дати та перетворення часових поясів</h3> + +<p>Існує велика кількість методів для отримання дати у різних форматах, а також для виконання перетворень часових поясів. Особливо корисні функції, які виводять дату та час у всесвітньому координованому часі (Coordinated Universal Time, UTC), глобальному стандартному часі, визначеному Всесвітнім часовим стандартом (World Time Standard). (Цей час історично відомий як <em>середній час за Гринвічем</em>, бо UTC пролякає вздовж меридіану, що включає Лондон — та сусідній Гринвіч — у Великій Британії.) Пристрій користувача надає місцевий час.</p> + +<p>Над додачу до методів для читання та зміни окремих компонентів місцевої дати та часу (таких, як {{jsxref("Date.getDay", "getDay()")}} та {{jsxref("Date.setHours", "setHours()")}}), також існують версії тих самих методів, які читають та змінюють дату та час, використовуючи час UTC (такі, як {{jsxref("Date.getUTCDay()", "getUTCDay()")}} та {{jsxref("Date.setUTCHours", "setUTCHours()")}}).</p> + +<h2 id="Конструктор">Конструктор</h2> + +<dl> + <dt>{{jsxref("Date/Date", "Date()")}}</dt> + <dd>Створює новий об'єкт <code>Date</code>.</dd> +</dl> + +<h2 id="Статичні_методи">Статичні методи</h2> + +<dl> + <dt>{{jsxref("Date.now()")}}</dt> + <dd>Вертає ціле число, що позначає поточний час — кількість мілісекунд від 1 січня 1970 року 00:00:00 за UTC без врахування високосних секунд.</dd> + <dt>{{jsxref("Date.parse()")}}</dt> + <dd>Розбирає рядкове представлення дати та повертає кількість мілісекунд між 00:00:00 за UTC 1 січня 1970 та зазначеною миттю у часі, ігноруючи високосні секунди.</dd> + <dd> + <div class="note"> + <p><strong>Заувага:</strong> Розбір рядків з датою (часом) за допомогою метода <code>Date.parse</code> є рішуче небажаним через наявні розбіжності поміж переглядачами.</p> + </div> + </dd> + <dt>{{jsxref("Date.UTC()")}}</dt> + <dd>Приймає ті самі параметри, що й найдовша форма конструктора (тобто, від 2 до 7), та вертає кількість мілісекунд від 1 січня 1970 року 00:00:00 за UTC, ігноруючи високосні секунди.</dd> +</dl> + +<h2 id="Методи_екземплярів">Методи екземплярів</h2> + +<dl> + <dt>{{jsxref("Date.prototype.getDate()")}}</dt> + <dd>Повертає день місяця (<code>1</code>–<code>31</code>) для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.getDay()")}}</dt> + <dd>Повертає день тижня (<code>0</code>–<code>6</code>) для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.getFullYear()")}}</dt> + <dd>Повертає рік (4 цифри для 4-значних років) вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.getHours()")}}</dt> + <dd>Повертає годину (<code>0</code>–<code>23</code>) у вказаній даті згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.getMilliseconds()")}}</dt> + <dd>Повертає мілісекунди (<code>0</code>–<code>999</code>) у вказаній даті згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.getMinutes()")}}</dt> + <dd>Повертає хвилини (<code>0</code>–<code>59</code>) у вказаній даті згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.getMonth()")}}</dt> + <dd>Повертає місяць (<code>0</code>–<code>11</code>) у вказаній даті згідно з місцевм часом.</dd> + <dt>{{jsxref("Date.prototype.getSeconds()")}}</dt> + <dd>Повертає секунди (<code>0</code>–<code>59</code>) у вказаній даті згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.getTime()")}}</dt> + <dd>Повертає числове значення вказаної дати у вигляді кількості мілісекунд від 1 січня 1970 року 00:00:00 за UTC. (Для більш ранніх дат повертаються від'ємні значення.)</dd> + <dt>{{jsxref("Date.prototype.getTimezoneOffset()")}}</dt> + <dd>Повертає зсув часового поясу у хвилинах для місцевих налаштувань.</dd> + <dt>{{jsxref("Date.prototype.getUTCDate()")}}</dt> + <dd>Повертає день місяця (<code>1</code>–<code>31</code>) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getUTCDay()")}}</dt> + <dd>Повертає день тижня (<code>0</code>–<code>6</code>) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getUTCFullYear()")}}</dt> + <dd>Повертає рік (4 цифри для 4-значних років) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getUTCHours()")}}</dt> + <dd>Повертає години (<code>0</code>–<code>23</code>) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getUTCMilliseconds()")}}</dt> + <dd>Повертає мілісекунди (<code>0</code>–<code>999</code>) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getUTCMinutes()")}}</dt> + <dd>Повертає хвилини (<code>0</code>–<code>59</code>) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getUTCMonth()")}}</dt> + <dd>Повертає місяць (<code>0</code>–<code>11</code>) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getUTCSeconds()")}}</dt> + <dd>Повертає секунди (<code>0</code>–<code>59</code>) у вказаній даті згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.getYear()")}}</dt> + <dd>Повертає рік (зазвичай, 2–3 цифри) у вказаній даті згідно з місцевим часом. Використовуйте замість нього {{jsxref("Date.prototype.getFullYear()", "getFullYear()")}}.</dd> + <dt>{{jsxref("Date.prototype.setDate()")}}</dt> + <dd>Встановлює день місяця для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.setFullYear()")}}</dt> + <dd>Встановлює повне значення року (наприклад, 4 цифри для 4-значних років) для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.setHours()")}}</dt> + <dd>Встановлює години для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.setMilliseconds()")}}</dt> + <dd>Встановлює мілісекунди для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.setMinutes()")}}</dt> + <dd>Встановлює хвилини для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.setMonth()")}}</dt> + <dd>Встановлює місяць для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.setSeconds()")}}</dt> + <dd>Встановлює секунди для вказаної дати згідно з місцевим часом.</dd> + <dt>{{jsxref("Date.prototype.setTime()")}}</dt> + <dd>Встановлює об'єкту {{jsxref("Date")}} час, переданий кількістю мілісекунд від 1 січня 1970 року 00:00:00 за UTC. Використовуйте від'ємні значення для більш ранніх дат.</dd> + <dt>{{jsxref("Date.prototype.setUTCDate()")}}</dt> + <dd>Встановлює день місяця для вказаної дати згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.setUTCFullYear()")}}</dt> + <dd>Встановлює повне значення року (наприклад, 4 цифри для 4-значних років) для вказаної дати згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.setUTCHours()")}}</dt> + <dd>Встановлює години для вказаної дати згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.setUTCMilliseconds()")}}</dt> + <dd>Встановлює мілісекунди для вказаної дати згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.setUTCMinutes()")}}</dt> + <dd>Встановлює хвилини для вказаної дати згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.setUTCMonth()")}}</dt> + <dd>Встановлює місяць для вказаної дати згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.setUTCSeconds()")}}</dt> + <dd>Встановлює секунди для вказаної дати згідно зі всесвітнім часом.</dd> + <dt>{{jsxref("Date.prototype.setYear()")}}</dt> + <dd>Встановлює рік (зазвичай, 2–3 цифри) для вказаної дати згідно з місцевим часом. Використовуйте замість нього {{jsxref("Date.prototype.setFullYear()", "setFullYear()")}}.</dd> + <dt>{{jsxref("Date.prototype.toDateString()")}}</dt> + <dd>Повертає елементи дати об'єкта {{jsxref("Date")}} у вигляді зручного для читання рядка, наприклад, <code>'Thu Apr 12 2018'</code>.</dd> + <dt>{{jsxref("Date.prototype.toISOString()")}}</dt> + <dd>Перетворює дату на рядок згідно з розширеним форматом ISO 8601.</dd> + <dt>{{jsxref("Date.prototype.toJSON()")}}</dt> + <dd>Повертає рядок, що відображає об'єкт {{jsxref("Date")}}, використовуючи {{jsxref("Date.prototype.toISOString()", "toISOString()")}}. Призначений для використання методом {{jsxref("JSON.stringify()")}}.</dd> + <dt>{{jsxref("Date.prototype.toGMTString()")}}</dt> + <dd>Повертає рядок, що відображає об'єкт {{jsxref("Date")}} на основі часового поясу GMT (UTC). Використовуйте замість нього {{jsxref("Date.prototype.toUTCString()", "toUTCString()")}}.</dd> + <dt>{{jsxref("Date.prototype.toLocaleDateString()")}}</dt> + <dd>Повертає рядкове представлення елементів дати у відповідності до системних налаштувань.</dd> + <dt><code><a href="/uk/docs/Archive/Web/JavaScript/Date.toLocaleFormat">Date.prototype.toLocaleFormat()</a></code></dt> + <dd>Перетворює дату на рядок, використовуючи рядок форматування.</dd> + <dt>{{jsxref("Date.prototype.toLocaleString()")}}</dt> + <dd>Повертає рядкове представлення дати відповідно до мовних налаштувань. Заміщує метод {{jsxref("Object.prototype.toLocaleString()")}}.</dd> + <dt>{{jsxref("Date.prototype.toLocaleTimeString()")}}</dt> + <dd>Повертає рядкове представлення часу у відповідності до мовних налаштувань.</dd> + <dt>{{jsxref("Date.prototype.toString()")}}</dt> + <dd>Повертає рядкове представлення вказаного об'єкта {{jsxref("Date")}}. Заміщує метод {{jsxref("Object.prototype.toString()")}}.</dd> + <dt>{{jsxref("Date.prototype.toTimeString()")}}</dt> + <dd>Повертає елементи часу об'єкта {{jsxref("Date")}} у вигляді зручного для читання рядка.</dd> + <dt>{{jsxref("Date.prototype.toUTCString()")}}</dt> + <dd>Перетворює дату на рядок, використовуючи часових пояс UTC.</dd> + <dt>{{jsxref("Date.prototype.valueOf()")}}</dt> + <dd>Повертає просте значення об'єкта {{jsxref("Date")}}. Заміщує метод {{jsxref("Object.prototype.valueOf()")}}.</dd> +</dl> + +<div></div> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Кілька_способів_створити_екземпляр_Date">Кілька способів створити екземпляр <code>Date</code></h3> + +<p>Наступні приклади демонструють кілька способів створення дат JavaScript:</p> + +<div class="note"> +<p><strong>Заувага:</strong> Розбір рядків з датою за допомогою конструктора <code>Date</code> (або методу <code>Date.parse</code>, що є одне й те саме) є рішуче небажаним через наявні розбіжності поміж переглядачами.</p> +</div> + +<pre class="brush: js notranslate">let today = new Date() +let birthday = new Date('December 17, 1995 03:24:00') +let birthday = new Date('1995-12-17T03:24:00') +let birthday = new Date(1995, 11, 17) // місяці нумеруються з 0 +let birthday = new Date(1995, 11, 17, 3, 24, 0) +let birthday = new Date(628021800000) // передаємо часову мітку +</pre> + +<h3 id="Щоб_отримати_день_місяць_та_рік_або_час"> Щоб отримати день, місяць та рік, або час</h3> + +<pre class="brush: js notranslate">let [month, date, year] = ( new Date() ).toLocaleDateString().split("/") +let [hour, minute, second] = ( new Date() ).toLocaleTimeString().slice(0,7).split(":")</pre> + +<h3 id="Двозначний_рік_відповідає_рокам_1900-1999">Двозначний рік відповідає рокам 1900-1999</h3> + +<p>Для створення та отримання дат між <code>0</code> та <code>99</code> роками, слід використовувати методи {{jsxref("Date.prototype.setFullYear()")}} та {{jsxref("Date.prototype.getFullYear()")}}.</p> + +<pre class="brush: js notranslate">let date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) + +// Застарілий метод, тут 98 також обертається на 1998 +date.setYear(98); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) + +date.setFullYear(98); // Sat Feb 01 0098 00:00:00 GMT+0000 (BST) +</pre> + +<h3 id="Обчислення_тривалості">Обчислення тривалості</h3> + +<p>У наведених прикладах показано, як визначити час, що пройшов між двома датами JavaScript.</p> + +<p>Через різну тривалість доби (внаслідок переходів між літнім та зимовим часом), місяців та років, вираження обчисленої тривалості в одиницях, більших за години, хвилини та секунди, зустрічає багато проблем та потребує вдумливого дослідження перед застосуванням.</p> + +<pre class="brush: js notranslate">// Використання об'єктв Date +var start = Date.now(); + +// Тут якісь обчислення, тривалість яких слід з'ясувати +doSomethingForALongTime(); +let end = Date.now() +let elapsed = end - start // час, що пройшов, у мілісекундах +</pre> + +<pre class="brush: js notranslate">// Використання вбудованих методів +let start = new Date() + +// Подію, час якої необхідно обчислити: +doSomethingForALongTime() +let end = new Date() +let elapsed = end.getTime() - start.getTime() // час, що пройшов, у мілісекундах +</pre> + +<pre class="brush: js notranslate">// Щоб перевірити функцію та отримати її результат +function printElapsedTime(fTest) { + let nStartTime = Date.now(), + vReturn = fTest(), + nEndTime = Date.now() + + console.log(`Тривалість: ${ String(nEndTime - nStartTime) } мілісекунд`); + return vReturn +} + +let yourFunctionReturn = printElapsedTime(yourFunction) +</pre> + +<div class="note"> +<p><strong>Заувага:</strong> У переглядачах з підтримкою часу високої роздільності {{domxref("window.performance", "Web Performance API", "", 1)}}, метод {{domxref("Performance.now()")}} може забезпечити вищу точність та надійність вимірювання тривалості, ніж {{jsxref("Date.now()")}}.</p> +</div> + +<h3 id="Отримання_кількості_секунд_з_початку_епохи_ECMAScript">Отримання кількості секунд з початку епохи ECMAScript</h3> + +<pre class="notranslate">let seconds = Math.floor(Date.now() / 1000) +</pre> + +<p>У цьому випадку важливо повернути тільки ціле число, тому просте ділення не підійде. Також важливо повернути лише секунди, які вже пройшли. (Тому цей код використовує {{jsxref("Math.floor()")}}, а <em>не</em> {{jsxref("Math.round()")}}.)</p> + +<h2 id="Специфікації">Специфікації</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Специфікація</th> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-date-objects', 'Date')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Підтримка_веб-переглядачами">Підтримка веб-переглядачами</h2> + +<div class="hidden">Таблиця сумісності на цій сторінці створена зі структурованих даних. Якщо ви хочете долучитися до розробки цих даних, пропонуйте нам свої pull request до репозиторію <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div> + +<div>{{Compat("javascript.builtins.Date.Date")}}</div> + +<h2 id="Див._також">Див. також</h2> + +<ul> + <li>Конструктор {{jsxref("Date/Date", "Date()")}}</li> +</ul> |