diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/date/tolocalestring/index.html')
-rw-r--r-- | files/uk/web/javascript/reference/global_objects/date/tolocalestring/index.html | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/date/tolocalestring/index.html b/files/uk/web/javascript/reference/global_objects/date/tolocalestring/index.html new file mode 100644 index 0000000000..292dc6472f --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/date/tolocalestring/index.html @@ -0,0 +1,178 @@ +--- +title: Date.prototype.toLocaleString() +slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString +tags: + - Date + - JavaScript + - Інтернаціоналізація + - Довідка + - метод +translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString +--- +<div>{{JSRef}}</div> + +<p>Метод <strong><code>toLocaleString()</code></strong> повертає рядкове представлення дати згідно налаштувань мови.</p> + +<p>Нові аргументи <code><var>locales</var></code> та <code><var>options</var></code> дозволяють застосункам вказувати мову, чиї правила форматування мають застосовуватись та налаштовувати поведінку функції.</p> + +<p>У старших реалізаціях, які ігнорують аргументи <em><code>locales</code></em> та <em><code>options</code></em>, мовні налаштування та форма поверненого рядка повністю залежать від реалізації.</p> + +<div>{{EmbedInteractiveExample("pages/js/date-tolocalestring.html")}}</div> + + + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox notranslate"><var>dateObj</var>.toLocaleString([<var>locales</var>[, <var>options</var>]])</pre> + +<h3 id="Параметри">Параметри</h3> + +<p>Аргументи <code><var>locales</var></code> та <code><var>options</var></code> налаштовують поведінку функції та дозволяють застосункам вказувати мову, чиї правила форматування мають застосовуватись. У тих реалізаціях, які ігнорують аргументи <em><code>locales</code></em> та <em><code>options</code></em>, мовні налаштування та форма поверненого рядка повністю залежать від реалізації.</p> + +<p>Дивіться конструктор {{jsxref("DateTimeFormat/DateTimeFormat", "Intl.DateTimeFormat()")}}, щоб дізнатись подробиці щодо цих параметрів та їхнього використання.</p> + +<p>Значенням за замовчуванням для кожної властивості компонента дати-часу є {{jsxref("undefined")}}. Але, якщо властивості <code>weekday</code>, <code>year</code>, <code>month</code>, <code>day</code> усі дорівнюють {{jsxref("undefined")}}, тоді <code>year</code>, <code>month</code>, та <code>day</code> вважаються числовими значеннями.</p> + +<h3 id="Повертає">Повертає</h3> + +<p>Рядкове представлення наданої дати згідно правил встановленої мови.</p> + +<h2 id="Швидкодія">Швидкодія</h2> + +<p>При форматуванні великої кількості дат краще створити об'єкт {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} та використовувати функцію, надану його властивістю {{jsxref("DateTimeFormat.prototype.format", "format")}}.</p> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Використання_toLocaleString">Використання toLocaleString()</h3> + +<p>При загальному використанні, без зазначення мови, повертається рядок у мовному форматі, що стоїть за замовчуванням, та з початковими параметрами.</p> + +<pre class="brush: js notranslate">let date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0)); + +// toLocaleString() без аргументів залежить від реалізації, +// мова та часовий пояс за замовчуванням +console.log(date.toLocaleString()); +// → "12/11/2012, 7:00:00 PM" при використанні мови en-US з часовим поясом America/Los_Angeles +</pre> + +<h3 id="Перевірка_підтримки_аргументів_locales_та_options">Перевірка підтримки аргументів locales та options</h3> + +<p>Аргументи <code><var>locales</var></code> та <code><var>options</var></code> ще не підтримуються в усіх переглядачах. Для перевірки їхньої підтримки у реалізації можна скористатись вимогою, згідно якої недозволені мовні позначення відхиляються з винятком {{jsxref("RangeError")}}:</p> + +<pre class="brush: js notranslate">function toLocaleStringSupportsLocales() { + try { + new Date().toLocaleString('i'); + } catch (e) { + return e instanceof RangeError; + } + return false; +} +</pre> + +<h3 id="Використання_locales">Використання locales</h3> + +<p>Цей приклад демонструє деякі варіації локалізованих форматів дати та часу. Щоб отримати формат мови, задіяної в інтерфейсі вашого застосутку, переконайтесь, що вказали цю мову (та, можливо, кілька запасних мов) за допомогою аргументу <code><var>locales</var></code>:</p> + +<pre class="brush: js notranslate">let date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +// наведені приклади припускають використання локального часового поясу для мови; +// для US це America/Los_Angeles + +// американська англійська використовує порядок місяць-день-рік та 12-годинний формат часу з AM/PM +console.log(date.toLocaleString('en-US')); +// → "12/19/2012, 7:00:00 PM" + +// британська англійська використовує порядок день-місяць-рік та 24-годинний формат часу без AM/PM +console.log(date.toLocaleString('en-GB')); +// → "20/12/2012 03:00:00" + +// корейська мова використовує порядок рік-місяць-день та 12-годинний формат часу з AM/PM +console.log(date.toLocaleString('ko-KR')); +// → "2012. 12. 20. 오후 12:00:00" + +// арабська у більшості арабськомовних країн використовує справжні арабські цифри +console.log(date.toLocaleString('ar-EG')); +// → "<span dir="rtl">٢٠/١٢/٢٠١٢ ٥:٠٠:٠٠ ص</span>" + +// для японської мови застосунки можуть використати японський календар, +// де 2012-й був 24-м роком епохи Хейсей +console.log(date.toLocaleString('ja-JP-u-ca-japanese')); +// → "24/12/20 12:00:00" + +// При запиті мови, яка, можливо, не підтримується, наприклад +// балійської, додайте запасні мови (в даному випадку це індонезійська) +console.log(date.toLocaleString(['ban', 'id'])); +// → "20/12/2012 11.00.00"</pre> + +<h3 id="Використання_options">Використання options</h3> + +<p>Результат методу <code>toLocaleString()</code> можна налаштувати за допомогою аргументу <code><var>options</var></code>:</p> + +<pre class="brush: js notranslate">let date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +// вивести день тижня разом з довгою датою +let options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; + +console.log(date.toLocaleString('de-DE', options)); +// → "Donnerstag, 20. Dezember 2012" + +// застосунок може використати час UTC, так, щоб це було видно +options.timeZone = 'UTC'; +options.timeZoneName = 'short'; + +console.log(date.toLocaleString('en-US', options)); +// → "Thursday, December 20, 2012, GMT" + +// іноді навіть в американській англійській потрібен 24-годинний час +console.log(date.toLocaleString('en-US', { hour12: false })); +// → "12/19/2012, 19:00:00" +</pre> + +<h3 id="Уникайте_порівнювати_відформатовану_дату_зі_статичними_значеннями">Уникайте порівнювати відформатовану дату зі статичними значеннями</h3> + +<p>Як правило, відформатовані значення, що повертає метод <code>toLocaleString()</code>, сумісні між собою. Однак, це може змінитись у майбутньому, і не гарантовано для усіх мов; варіації у форматах виводу визначаються дизайном та дозволені специфікацією.</p> + +<p>З найбільш помітного, переглядачі IE та Edge вставляють двонаправлені керівні символи навколо дат, щоб виведений текст правильно поєднувався з іншим текстом.</p> + +<p>З цієї причини ви не можете гарантовано порівняти результати <code>toLocaleString()</code> зі статичним значенням:</p> + +<pre class="brush: js; example-bad notranslate">"1/1/2019, 01:00:00" === new Date("2019-01-01T01:00:00Z").toLocaleString("en-US"); +// true у Firefox та інших +// false у IE та Edge</pre> + +<div class="blockIndicator note"> +<p><strong>Заувага</strong>: Більше подробиць та прикладів дивіться у цьому <a href="https://stackoverflow.com/questions/25574963/ies-tolocalestring-has-strange-characters-in-results">обговоренні на StackOverflow</a>.</p> +</div> + +<h2 id="Специфікації">Специфікації</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Специфікація</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}}</td> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#sup-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> + +<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p> + +<p>{{Compat("javascript.builtins.Date.toLocaleString")}}</p> + +<h2 id="Див._також">Див. також</h2> + +<ul> + <li>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</li> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleTimeString()")}}</li> + <li>{{jsxref("Date.prototype.toString()")}}</li> +</ul> |