aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/guide/numbers_and_dates
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
commit218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch)
treea9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/guide/numbers_and_dates
parent074785cea106179cb3305637055ab0a009ca74f2 (diff)
downloadtranslated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip
initial commit
Diffstat (limited to 'files/uk/web/javascript/guide/numbers_and_dates')
-rw-r--r--files/uk/web/javascript/guide/numbers_and_dates/index.html383
1 files changed, 383 insertions, 0 deletions
diff --git a/files/uk/web/javascript/guide/numbers_and_dates/index.html b/files/uk/web/javascript/guide/numbers_and_dates/index.html
new file mode 100644
index 0000000000..71b7acd1bc
--- /dev/null
+++ b/files/uk/web/javascript/guide/numbers_and_dates/index.html
@@ -0,0 +1,383 @@
+---
+title: Числа та дати
+slug: Web/JavaScript/Guide/Numbers_and_dates
+tags:
+ - Date
+ - JavaScript
+ - Math
+ - Number
+ - Дати
+ - Обчислення
+ - Посібник
+ - Числа
+translation_of: Web/JavaScript/Guide/Numbers_and_dates
+---
+<div>{{jsSidebar("JavaScript Guide")}} {{PreviousNext("Web/JavaScript/Guide/Вирази_та_оператори", "Web/JavaScript/Guide/Text_formatting")}}</div>
+
+<p>У даному розділі представлені концепції, об'єкти та функції, які використовуються, щоб працювати та виконувати розрахунки з числами та датами у JavaScript. Це враховує використання чисел, записаних у різних системах числення, в тому числі десятковій, двійковій та шістнадцятковій, а також використання глобального об'єкта {{jsxref("Math")}} для виконання найрізноманітніших математичних операцій над числами.</p>
+
+<h2 id="Числа">Числа</h2>
+
+<p>У JavaScript, числа реалізовані у <a href="https://en.wikipedia.org/wiki/Double-precision_floating-point_format">64-бітному бінарному форматі IEEE 754 з подвійною точністю</a> (тобто, число між ±2<sup>−1022</sup> та ±2<sup>+1023</sup>, або приблизно від ±10<sup>−308</sup> до ±10<sup>+308</sup>, з числовою точністю у 53 біти). Цілі значення до ±2<sup>53 </sup>− 1 можуть бути відображені точно.</p>
+
+<p>Додатково числовий тип має три символьні значення: <code>+</code>{{jsxref("Infinity")}}, <code>-</code>{{jsxref("Infinity")}} та {{jsxref("NaN")}} (not-a-number - не число).</p>
+
+<p>Нещодавнім доповненням JavaScript є тип {{jsxref("BigInt")}}, який дає можливість оперувати з дуже великими цілими числами. Хоча існують застереження у використанні <code>BigInt</code>; наприклад, ви не можете змішувати та співставляти значення <code>BigInt</code> та {{jsxref("Number")}} в рамках однієї операції, і ви не можете використовувати об'єкт {{jsxref("Math")}} зі значеннями <code>BigInt</code>.</p>
+
+<p>У статті <a href="/uk/docs/Web/JavaScript/Data_structures">Типи та структури даних в JavaScript</a> числовий тип даних описаний в контексті інших примітивних типів JavaScript.</p>
+
+<p>Ви можете використовувати чотири типа числових літералів: десяткові, двійкові, вісімкові та шістнадцятковий.</p>
+
+<h3 id="Десяткові_числа">Десяткові числа</h3>
+
+<pre class="brush: js notranslate">1234567890
+42
+
+// Будьте уважні при використанні нулів на початку числа
+
+0888 // 888 розбирається як десяткове число
+0777 // розбирається як вісімкове число у нестрогому режимі (десяткове число 511)</pre>
+
+<p>Зверніть увагу, що десятковий літерал може починатися з нуля (<code>0</code>) за яким розташована інша десяткова цифра, але, якщо кожна цифра після <code>0</code> менша за 8, то число розбирається як вісімкове.</p>
+
+<h3 id="Двійкові_числа">Двійкові числа</h3>
+
+<p>Синтаксис двійковичх чисел використовує нуль попереду, за яким розташована латинська буква "B" (<code>0b</code> або <code>0B</code>). Якщо цифри після <code>0b</code> не є 0 або 1, викидається наступний виняток <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code>: "Missing binary digits after 0b".</p>
+
+<pre class="brush: js notranslate">var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
+var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
+var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607</pre>
+
+<h3 id="Вісімкові_числа">Вісімкові числа</h3>
+
+<p>Синтаксис вісімкових чисел теж використовує нуль попереду. Якщо числа після <code>0</code> не входять у діапазон від 0 до 7, то число буде інтерпретоване як десяткове.</p>
+
+<pre class="brush: js notranslate">var n = 0755; // 493
+var m = 0644; // 420</pre>
+
+<p>Строгий режим у ECMAScript 5 забороняє вісімковий синтаксис. Вісімковий синтаксис не є частиною ECMAScript 5, але він підтримується всіма переглядачами додаванням нуля попереду вісімкового числа: <code>0644 === 420</code>, а <code>"\045" === "%"</code>. У ECMAScript 2015 вісімкові значення підтримуються, якщо вони мають префікс <code>0o</code>, наприклад: </p>
+
+<pre class="brush: js notranslate">var a = 0o10; // ES2015: 8</pre>
+
+<h3 id="Шістнадцяткові_числа">Шістнадцяткові числа</h3>
+
+<p>Синтаксис шістнадцяткових чисел використовує нуль попереду, за яким розташована латинська літера "X" (<code>0x</code> або <code>0X</code>). Якщо числа після 0x не входять у діапазон (0123456789ABCDEF), то буде викинутий наступний виняток <code><a href="/uk/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError">SyntaxError</a></code>: "Identifier starts immediately after numeric literal".</p>
+
+<pre class="brush: js notranslate">0xFFFFFFFFFFFFFFFFF // 295147905179352830000
+0x123456789ABCDEF // 81985529216486900
+0XA // 10</pre>
+
+<h3 id="Експоненціальний_запис">Експоненціальний запис</h3>
+
+<pre class="brush: js notranslate">1E3 // 1000
+2e6 // 2000000
+0.1e2 // 10</pre>
+
+<h2 id="Обєкт_Number">Об'єкт <code>Number</code></h2>
+
+<p>Вбудований об'єкт {{jsxref("Число", "Number")}} має властивості для числових констант, такі як масимальне числове значення, не-число (not-a-number) та нескінченність. Ви не можете змінювати значення цих властивостей і використовуєте їх наступним чином:</p>
+
+<pre class="brush: js notranslate">var biggestNum = Number.MAX_VALUE;
+var smallestNum = Number.MIN_VALUE;
+var infiniteNum = Number.POSITIVE_INFINITY;
+var negInfiniteNum = Number.NEGATIVE_INFINITY;
+var notANum = Number.NaN;</pre>
+
+<p>Ви завжди посилаєтесь на властивість попередньо визначенного об'єкта <code>Number</code>, як це показано вище, а не на властивість об'єкта <code>Number</code>, створеного вами.</p>
+
+<p>Наступна таблиця підсумовує властивості об'єкта <code>Number</code>.</p>
+
+<table class="standard-table">
+ <caption>Властивості <code>Number</code></caption>
+ <thead>
+ <tr>
+ <th scope="col"><strong>Властивість</strong></th>
+ <th scope="col"><strong>Опис</strong></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{jsxref("Число.MAX_VALUE", "Number.MAX_VALUE")}}</td>
+ <td>Найбільше число, доступне для відображення (<code>±1.7976931348623157e+308</code>)</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.MIN_VALUE", "Number.MIN_VALUE")}}</td>
+ <td>
+ <p>Найменше число, доступне для відображення (<code>±5e-324</code>)</p>
+ </td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.NaN", "Number.NaN")}}</td>
+ <td>Спеціальне значення "не-число" (not-a-number)</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.NEGATIVE_INFINITY", "Number.NEGATIVE_INFINITY")}}</td>
+ <td>Спеціальне значення від'ємна нескінченність; повертається при переповненні</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.POSITIVE_INFINITY", "Number.POSITIVE_INFINITY")}}</td>
+ <td>Спеціальне значення додатна нескінченність; повертається при переповненні</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.EPSILON", "Number.EPSILON")}}</td>
+ <td>Різниця між <code>1</code> та найменшим числом, більшим за <code>1</code>, що може бути представлене об'єктом {{jsxref("Число", "Number")}} (<code>2.220446049250313e-16</code>)</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.MIN_SAFE_INTEGER", "Number.MIN_SAFE_INTEGER")}}</td>
+ <td>Мінімальне ціле безпечне число у JavaScript (−2<sup>53</sup> + 1 або <code>−9007199254740991</code>)</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.MAX_SAFE_INTEGER", "Number.MAX_SAFE_INTEGER")}}</td>
+ <td>Максимальне ціле безпечне число у JavaScript (+2<sup>53</sup> − 1 або <code>+9007199254740991</code>)</td>
+ </tr>
+ </tbody>
+</table>
+
+<table class="standard-table">
+ <caption>Методи <code>Number</code></caption>
+ <thead>
+ <tr>
+ <th>Метод</th>
+ <th>Опис</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{jsxref("Число.parseFloat()", "Number.parseFloat()")}}</td>
+ <td>Розбирає рядковий аргумент та повертає число з плаваючою крапкою, яке вдалося розпізнати.<br>
+ Аналог глобальної функції {{jsxref("parseFloat", "parseFloat()")}}.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.parseInt()", "Number.parseInt()")}}</td>
+ <td>Розбирає рядковий аргумент та поверає ціле число в заданій системі числення.<br>
+ Аналог глобальної функції {{jsxref("parseInt", "parseInt()")}}.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.isFinite()", "Number.isFinite()")}}</td>
+ <td>Визначає, чи є передане значення скінченним числом.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.isInteger()", "Number.isInteger()")}}</td>
+ <td>Визначає, чи є передане значення цілим числом.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.isNaN()", "Number.isNaN()")}}</td>
+ <td>Визначає, чи є передане значення {{jsxref("Global_Objects/NaN", "NaN")}}. Більш надійніша версія оригінальної глобальної функції  {{jsxref("Global_Objects/isNaN", "isNaN()")}}.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.isSafeInteger()", "Number.isSafeInteger()")}}</td>
+ <td>Визначає, чи є передане значення безпечним цілим числом.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Прототип <code>Number</code> надає методи для отримання інформації з об'єктів <code>Number</code> різноманітних форматів. Наступна таблиця наводить методи <code>Number.prototype</code>.</p>
+
+<table class="standard-table">
+ <caption>Методи <code>Number.prototype</code></caption>
+ <thead>
+ <tr>
+ <th scope="col">Методи</th>
+ <th scope="col">Опис</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{jsxref("Число.toExponential", "toExponential()")}}</td>
+ <td>Повертає рядок, що експоненціальний запис числа.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.toFixed", "toFixed()")}}</td>
+ <td>Повертає рядок, що містить запис числа у форматі з нерухомою крапкою.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Число.toPrecision", "toPrecision()")}}</td>
+ <td>Повертає рядок, що містить запис числа із зазначеною точністю у форматі з нерухомою крапкою.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Обєкт_Math">Об'єкт <code>Math</code></h2>
+
+<p>Вбудований об'єкт {{jsxref("Math")}} має властивості та методи для математичних констант та функцій. Наприклад, властивість <code>PI</code> об'єкту <code>Math</code> має значення пі (3.141...), яке використовується у застосунку так:</p>
+
+<pre class="brush: js notranslate">Math.PI</pre>
+
+<p>Аналогічно, стандартні математичні функції є методами об'єкта <code>Math</code>. Сюди входять тригонометричні, логарифмічні, експоненціальні та інші функції. Наприклад, якби вам знадобилась тригонометрична функція сінус, ви б написали</p>
+
+<pre class="brush: js notranslate">Math.sin(1.56)</pre>
+
+<p>Зверніть увагу, що всі тригонометричні методи об'єкта <code>Math</code> в якості аргументів приймають величини в радіанах.</p>
+
+<p>В даній таблиці наведені методи об'єкта <code>Math</code>.</p>
+
+<table class="standard-table">
+ <caption>Методи <code>Math</code></caption>
+ <thead>
+ <tr>
+ <th scope="col">Методи</th>
+ <th scope="col">Опис</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{jsxref("Math.abs", "abs()")}}</td>
+ <td>Абсолютне значення</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.sin", "sin()")}}, {{jsxref("Math.cos", "cos()")}}, {{jsxref("Math.tan", "tan()")}}</td>
+ <td>Стандартні тригонометричні функції; з аргументом в радіанах</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.asin", "asin()")}}, {{jsxref("Math.acos", "acos()")}}, {{jsxref("Math.atan", "atan()")}}, {{jsxref("Math.atan2", "atan2()")}}</td>
+ <td>Обернені тригонометричні функції; повертають значення в радіанах.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.sinh", "sinh()")}}, {{jsxref("Math.cosh", "cosh()")}}, {{jsxref("Math.tanh", "tanh()")}}</td>
+ <td>Гіперболічні функції; аргумент - гіперболічний кут.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.asinh", "asinh()")}}, {{jsxref("Math.acosh", "acosh()")}}, {{jsxref("Math.atanh", "atanh()")}}</td>
+ <td>Зворотні, гіперболічні функцій; повертають гіперболічний кут.</td>
+ </tr>
+ <tr>
+ <td>
+ <p>{{jsxref("Math.pow", "pow()")}}, {{jsxref("Math.exp", "exp()")}}, {{jsxref("Math.expm1", "expm1()")}}, {{jsxref("Math.log10", "log10()")}}, {{jsxref("Math.log1p", "log1p()")}}, {{jsxref("Math.log2", "log2()")}}</p>
+ </td>
+ <td>Експоненційні та логарифмічні фукнції.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.floor", "floor()")}}, {{jsxref("Math.ceil", "ceil()")}}</td>
+ <td>Повертає найбільне/найменше ціле, яке менше/більше або дорівнює аргументу.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.min", "min()")}}, {{jsxref("Math.max", "max()")}}</td>
+ <td>Повертає мінімальне або максимальне (відповідно) значення зі списку розділених комою чисел, переданих як аргумент.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.random", "random()")}}</td>
+ <td>Повертає випадкове число в інтервалі між 0 та 1.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.round", "round()")}}, {{jsxref("Math.fround", "fround()")}}, {{jsxref("Math.trunc", "trunc()")}},</td>
+ <td>Фукнції округлення та обрізання.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.sqrt", "sqrt()")}}, {{jsxref("Math.cbrt", "cbrt()")}}, {{jsxref("Math.hypot", "hypot()")}}</td>
+ <td>
+ <p>Квадратний корінь, кубічний корінь, корінь квадратний з суми квадратів аргументів.</p>
+ </td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.sign", "sign()")}}</td>
+ <td>Знак числа, що вказує, чи є число додатним, від'ємним, чи нулем.</td>
+ </tr>
+ <tr>
+ <td>{{jsxref("Math.clz32", "clz32()")}},<br>
+ {{jsxref("Math.imul", "imul()")}}</td>
+ <td>Кількість перших нульових бітів у 32-бітному двійковому представлені.<br>
+ Результат C-подібного 32-бітного множення двох аргументів.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>На відміну від багатьох інших об'єктів, вам не потрібно створювати екземпляри об'єкта <code>Math</code>. Завжди слід використоввати вбудований глобальний об'єкт <code>Math</code> безпосередньо.</p>
+
+<h2 id="Обєкт_Date">Об'єкт <code>Date</code></h2>
+
+<p>JavaScript не має окремого типу даних для дат. Однак, ви можете скористатись об'єктом {{jsxref("Date")}} та його методами для роботи з датою та часом у вашому проекті. Об'єкт <code>Date</code> має величезну кількість методів для встановлення, отримання та маніпулювання датами, але не має жодних властивостей.</p>
+
+<p>JavaScript оперує датами подібно до Java. Ці дві мови програмування мають багато подібних методів та зберігають дату як кількість мілісекунд, що минули з 00:00:00 1 січня 1970 року, в той час, як часова мітка Unix позначає кількість секунд, що минули з 00:00:00 1 січня 1970 року.</p>
+
+<p>Інтервал значень, які може приймати об'єкт <code>Date</code>, знаходиться від -100,000,000 до 100,000,000 днів відносно 1 січня 1970 року за UTC.</p>
+
+<p>Щоб створити об'єкт <code>Date</code>:</p>
+
+<pre class="brush: js notranslate">var dateObjectName = new Date([parameters]);</pre>
+
+<p>де <code>dateObjectName</code> - це ім'я створеного об'єкта <code>Date</code>; це може бути як новий об'єкт, так і властивість вже існуючого об'єкта.</p>
+
+<p>Виклик <code>Date</code> без оператора <code>new</code> повертає теперішню дату та час у вигляді рядка.</p>
+
+<p>Параметри (<code>parameters</code>) у наведеному записі можуть бути одним з наступних значень:</p>
+
+<ul>
+ <li>Порожнє значення: створюється сьогоднішня дата та час. Наприклад, <code>today = new Date();</code>.</li>
+ <li>Рядок, що представляє дату в наступній формі: "Місяць день, рік години:хвилини:секунди."  Наприклад, <code>var Xmas95 = new Date("December 25, 1995 13:30:00")</code>. Якщо не вказані години, хвилини чи секунди, значення замінюються нулями.</li>
+ <li>Набір цілочисельних значень для року, місяця та дня. Наприклад, <code>var Xmas95 = new Date(1995, 11, 25)</code>.</li>
+ <li>Набір цілочисельних значень для року, місяця, дня, годин, хвилин та секунд. Наприклад, <code>var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);</code>.</li>
+</ul>
+
+<h3 id="Методи_обєкта_Date">Методи об'єкта <code>Date</code></h3>
+
+<p>Методи об'єкта <code>Date</code> для роботи з датами та часом підпадають під такі категорії:</p>
+
+<ul>
+ <li>методи "set", для встановлення дати та часу в об'єктах <code>Date</code>.</li>
+ <li>методи "get", для отримання дати та часу з об'єктів <code>Date</code>.</li>
+ <li>методи "to", для отримання рядкових значень з об'єктів <code>Date</code>. </li>
+ <li>методи розбору та UTC, для розбору рядків <code>Date</code>.</li>
+</ul>
+
+<p>За допомогою методів "get" та "set" можна встановлювати та отримувати значення секунд, хвилин, годин, днів місяця, днів тижня, місяць та рік окремо. Зверніть увагу на метод <code>getDay</code>, який повертає день тижня, але не існує відповідного методу <code>setDay</code>, оскільки день тижня визначається автоматично. Всі ці методи використовують цілі числа для представлення відповідних даних наступним чином:</p>
+
+<ul>
+ <li>Секунди та хвилини: від 0 до 59</li>
+ <li>Години: від 0 до 23</li>
+ <li>День: від 0 (неділя) до 6 (субота)</li>
+ <li>Дата: від 1 до 31 (день місяця)</li>
+ <li>Місяць: від 0 (січень) до 11 (грудень)</li>
+ <li>Рік: роки з 1900</li>
+</ul>
+
+<p>Припустимо, ви визначаєте наступну дату:</p>
+
+<pre class="brush: js notranslate">var Xmas95 = new Date('December 25, 1995');</pre>
+
+<p>Тоді <code>Xmas95.getMonth()</code> повертає 11, а <code>Xmas95.getFullYear()</code> повертає 1995.</p>
+
+<p>Методи <code>getTime</code> та <code>setTime</code> зручні для порівняння дат. Метод <code>getTime</code> повертає кількість мілесекунд від 00:00:00, 1 січня 1970 року.</p>
+
+<p>Наприклад, наступний код показує, скільки днів залишилось у цьому році:</p>
+
+<pre class="brush: js notranslate">var today = new Date();
+var endYear = new Date(1995, 11, 31, 23, 59, 59, 999); // Встановлюємо день та місяць
+endYear.setFullYear(today.getFullYear()); // Встановлюємо цей рік
+var msPerDay = 24 * 60 * 60 * 1000; // Кількість мілісекунд в одному дні
+var daysLeft = (endYear.getTime() - today.getTime()) / msPerDay;
+var daysLeft = Math.round(daysLeft); //Повертає кількість днів, які залишилися в цьому році</pre>
+
+<p>Цей приклад створює об'єкт <code>Date</code> на ім'я <code>today</code>, який містить в собі сьогоднішню дату. Далі він створює об'єкт <code>Date</code> на ім'я <code>endYear</code>, якому присвоюється поточний рік. Потім, використовуючи кількість мілісекунд в одному дні, вираховує кількість днів між <code>today</code> та <code>endYear</code>, використовуючи <code>getTime</code> та округливши результат до цілого значення кількості днів.</p>
+
+<p>Метод <code>parse</code> корисний для присвоєння рядкових значень існуючим об'єктам <code>Date</code>. Наприклад, наступний код використовує <code>parse</code> та <code>setTime</code> для присвоєння дати об'єкту <code>IPOdate</code>:</p>
+
+<pre class="brush: js notranslate">var IPOdate = new Date();
+IPOdate.setTime(Date.parse('Aug 9, 1995'));</pre>
+
+<h3 id="Приклад">Приклад</h3>
+
+<p>У наступному прикладі, функція <code>JSClock()</code> повертає час у форматі цифрового годинника.</p>
+
+<pre class="brush: js notranslate">function JSClock() {
+ var time = new Date();
+ var hour = time.getHours();
+ var minute = time.getMinutes();
+ var second = time.getSeconds();
+ var temp = '' + ((hour &gt; 12) ? hour - 12 : hour);
+ if (hour == 0)
+ temp = '12';
+ temp += ((minute &lt; 10) ? ':0' : ':') + minute;
+ temp += ((second &lt; 10) ? ':0' : ':') + second;
+ temp += (hour &gt;= 12) ? ' P.M.' : ' A.M.';
+ return temp;
+}</pre>
+
+<p>Функція <code>JSClock</code> спочатку створює новий об'єкт <code>Date</code>, який називається <code>time</code>; оскільки жодних аргументів не надано, час створюється на основі поточної дати та часу. Далі викликами методів <code>getHours</code>, <code>getMinutes</code> та <code>getSeconds</code> присвоюються значення поточної години, хвилини та секунди змінним <code>hour</code>, <code>minute</code> та <code>second</code>.</p>
+
+<p>Наступні чотири інструкції створюють рядкове значення на основі значення часу. Перша інструкція створює змінну <code>temp</code>, присвоюючи їй значення за допомогою умовного виразу: якщо <code>hour</code> більше за 12, то (<code>hour - 12</code>), інакше просто <code>hour</code>, у випадку ж коли <code>hour</code> дорівнює 0, він набуває значення 12.</p>
+
+<p>Наступна інструкція додає значення <code>minute</code> до змінної <code>temp</code>. Якщо значення <code>minute</code> менше за 10, умовний вираз додає рядок з нулем попереду; інакше додається рядок з двокрапкою для розмежування. Далі аналогічним чином інструкція додає до <code>temp</code> секунди.</p>
+
+<p>Зрештою, умовний вираз додає "P.M." до <code>temp</code>, якщо <code>hour</code> дорівнює або більший за 12; інакше, додається "A.M.".</p>
+
+<p>{{PreviousNext("Web/JavaScript/Guide/Вирази_та_оператори", "Web/JavaScript/Guide/Text_formatting")}}</p>