diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/javascript/reference/global_objects/intl/datetimeformat | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/ru/web/javascript/reference/global_objects/intl/datetimeformat')
6 files changed, 910 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html new file mode 100644 index 0000000000..ff24de6317 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/format/index.html @@ -0,0 +1,123 @@ +--- +title: Intl.DateTimeFormat.prototype.format +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format +tags: + - DateTimeFormat J + - Internationalization + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format +--- +<div>{{JSRef("Global_Objects", "DateTimeFormat", "Intl,Collator,NumberFormat")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> +<p>Свойство <strong><code>Intl.DateTimeFormat.prototype.format</code></strong> возвращает функцию-геттер, форматирующую дату согласно локали и параметрам форматирования соответствующего объекта {{jsxref("Global_Objects/DateTimeFormat", "DateTimeFormat")}}.</p> + +<h2 id="Syntax" name="Syntax">Синтаксис</h2> +<pre class="syntaxbox"><code><var>dateTimeFormat</var>.format(<var>date</var>)</code></pre> + +<h3 id="Parameters" name="Parameters">Параметры</h3> +<dl> + <dt><code>date</code></dt> + <dd>Дата для форматирования.</dd> +</dl> + +<h2 id="Description" name="Description">Описание</h2> +<p>Функция, возвращённая геттером <code>format</code>, форматирует дату согласно локали и параметрам форматирования соответствующего объекта {{jsxref("Global_Objects/DateTimeFormat", "DateTimeFormat")}}.</p> + +<h2 id="Examples" name="Examples">Примеры</h2> + +<h3 id="Example_Using_format" name="Example:_Using_format">Пример: использование функции <code>format</code></h3> +<p>Использование функции, возвращённой геттером <code>format</code>, для форматирования одной даты, здесь пример для сербского языка:</p> +<pre class="brush: js">var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; +var dateTimeFormat = new Intl.DateTimeFormat('sr-RS', options); +console.log(dateTimeFormat.format(new Date())); +// → "недеља, 7. април 2013." +</pre> + +<h3 id="Example_Using_format_with_map" name="Example:_Using_format_with_map">Пример: использование функции <code>format</code> вместе с <code>map</code></h3> +<p>Использование функции, возвращённой геттером <code>format</code>, для форматирования всех дат в массиве. Обратите внимание, что функция привязана к объекту {{jsxref("Global_Objects/DateTimeFormat", "DateTimeFormat")}}, из которого она была получена, так что её можно передавать в {{jsxref("Array.prototype.map()")}} напрямую.</p> +<pre class="brush: js">var a = [new Date(2012, 08), new Date(2012, 11), new Date(2012, 03)]; +var options = { year: 'numeric', month: 'long' }; +var dateTimeFormat = new Intl.DateTimeFormat('pt-BR', options); +var formatted = a.map(dateTimeFormat.format); +console.log(formatted.join('; ')); +// → "setembro de 2012; dezembro de 2012; abril de 2012" +</pre> + +<h2 id="Specifications" name="Specifications">Спецификации</h2> +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарии</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-12.3.2', 'Intl.DateTimeFormat.format')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Изначальное определение.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> +<div>{{CompatibilityTable}}</div> +<div id="compat-desktop"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatChrome("24")}}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> +<div id="compat-mobile"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Android</th> + <th>Chrome для Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("26")}}</td> + <td> + {{CompatNo}}<br> + {{bug("864843")}} + </td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> + +<h2 id="See_also" name="See_also">Смотрите также</h2> +<ul> + <li>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</li> + <li>{{jsxref("Date.prototype.toLocaleString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleTimeString()")}}</li> +</ul> diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html new file mode 100644 index 0000000000..acfff0a5a2 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/formattoparts/index.html @@ -0,0 +1,169 @@ +--- +title: Intl.DateTimeFormat.prototype.formatToParts() +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts +tags: + - DateTimeFormat + - Intl + - JavaScript + - Method + - Prototype + - метод +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts +--- +<div>{{JSRef}}</div> + +<div>Метод <strong><code>Intl.DateTimeFormat.prototype.formatToParts()</code></strong> позволяет выполнять форматирование строк с учётом форматирования <code>DateTimeFormat</code>.</div> + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox">Intl.DateTimeFormat.prototype.formatToParts(date)</pre> + +<h3 id="Параметры">Параметры</h3> + +<dl> + <dt><code>date</code> {{optional_inline}}</dt> + <dd>Дата, которую нужно отформатировать.</dd> +</dl> + +<h3 id="Возвращаемое_значение">Возвращаемое значение</h3> + +<p>Массив объектов {{jsxref("Array")}}, содержащий отформатированную дату по частям.</p> + +<h2 id="Описание">Описание</h2> + +<p>Метод <code>formatToParts()</code> полезен для пользовательского форматирования строки даты. Он возвращает массив объектов {{jsxref("Array")}}, содерщащий специфичные для данного места токены, из которых можно выстроить пользовательскую строку, которая сохранит специфичные для данного места части. Структура возвращаемого значения методом <code>formatToParts()</code> выглядит так:</p> + +<pre class="brush: js">[ + { type: 'day', value: '17' }, + { type: 'weekday', value: 'Monday' } +]</pre> + +<p>Возможные типы:</p> + +<dl> + <dt>day</dt> + <dd>Строка, используемая для дня, например, <code>"17"</code>.</dd> + <dt>dayPeriod</dt> + <dd>Строка, используемая для времени суток, например, <code>"AM"</code> или <code>"PM"</code>.</dd> + <dt>era</dt> + <dd>Строка, используемая для эры, например, <code>"BC"</code> или <code>"AD"</code>.</dd> + <dt>hour</dt> + <dd>Строка, используемая для часа, например, <code>"3"</code> или <code>"03"</code>.</dd> + <dt>literal</dt> + <dd>Строка, используемая для разделения значений даты и времени, например, <code>"/"</code>, <code>","</code>, <code>"o'clock"</code>, <code>"de"</code> и другие.</dd> + <dt>minute</dt> + <dd>Строка, используемая для минут, например, <code>"00"</code>.</dd> + <dt>month</dt> + <dd>Строка, используемая для месяца, например, <code>"12"</code>.</dd> + <dt>second</dt> + <dd>Строка, используемая для секунд, например, <code>"07"</code> или <code>"42"</code>.</dd> + <dt>timeZoneName</dt> + <dd>Строка, используемая для названия временной зоны, например, <code>"UTC"</code>.</dd> + <dt>weekday</dt> + <dd>Строка, используемая для дня недели, например, <code>"M"</code>, <code>"Monday"</code> или <code>"Montag"</code>.</dd> + <dt>year</dt> + <dd>Строка, используемая для года, например, <code>"2012"</code> или <code>"96"</code>.</dd> +</dl> + +<h2 id="Примеры">Примеры</h2> + +<p><code>DateTimeFormat</code> выводит локализированные строки, которые нельзя изменять напрямую:</p> + +<pre class="brush: js">var date = Date.UTC(2012, 11, 17, 3, 0, 42); + +var formatter = new Intl.DateTimeFormat('ru', { + weekday: 'long', + year: 'numeric', + month: 'numeric', + day: 'numeric', + hour: 'numeric', + minute: 'numeric', + second: 'numeric', + hour12: true, + timeZone: 'UTC' +}); + +formatter.format(date); +// "понедельник, 17.12.2012 г., 3:00:42 AM" +</pre> + +<p>Однако, во многих пользовательских интерфейсах есть желание настроить форматирование этой строки. Метод <code>formatToParts</code> включает форматирование строки с учётом местности, созданной форматером <code>DateTimeFormat</code>, предоставляя вам строку по частям:</p> + +<pre class="brush: js">formatter.formatToParts(date); + +// возвращаемое значение: +[ + { type: 'weekday', value: 'понедельник'}, + { type: 'literal', value: ', ' }, + { type: 'day', value: '17' }, + { type: 'literal', value: '.' }, + { type: 'month', value: '12' }, + { type: 'literal', value: '.' }, + { type: 'year', value: '2012' }, + { type: 'literal', value: 'г., ' }, + { type: 'hour', value: '3' }, + { type: 'literal', value: ':' }, + { type: 'minute', value: '00' }, + { type: 'literal', value: ':' }, + { type: 'second', value: '42' }, + { type: 'literal', value: ' ' }, + { type: 'dayPeriod', value: 'AM' } +] +</pre> + +<p>Теперь информация доступна по отдельности и может быть отформатирована и объединена снова в пользавотельском порядке. Например, используя {{jsxref("Array.prototype.map()")}}, <a href="/ru/docs/Web/JavaScript/Reference/Functions/Arrow_functions">стрелочные функции</a>, <a href="/ru/docs/Web/JavaScript/Reference/Statements/switch">инструкцию switch</a>, <a href="/ru/docs/Web/JavaScript/Reference/template_strings">шаблонные строки</a> и {{jsxref("Array.prototype.reduce()")}}.</p> + +<pre class="brush: js">var dateString = formatter.formatToParts(date).map(({type, value}) => { + switch (type) { + case 'dayPeriod': return `<b>${value}</b>`; + default : return value; + } +}).reduce((string, part) => string + part); +</pre> + +<p>Здесь время суток будет выделено жирным с использованием метода <code>formatToParts()</code>.</p> + +<pre class="brush: js">console.log(formatter.format(date)); +// "понедельник, 17.12.2012 г., 3:00:42 AM" + +console.log(dateString); +// "понедельник, 17.12.2012 г., 3:00:42 <b>AM</b>"</pre> + +<h2 id="Полифилл">Полифилл</h2> + +<p>Полифил для данного метода доступен <a href="https://github.com/zbraniecki/proposal-intl-formatToParts">здесь</a>.</p> + +<h2 id="Спецификации">Спецификации</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецфикация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарий</th> + </tr> + <tr> + <td>{{SpecName('ES Int Draft', '#sec-Intl.DateTimeFormat.prototype.formatToParts', 'Intl.DateTimeFormat.prototype.formatToParts')}}</td> + <td>{{Spec2('ES Int Draft')}}</td> + <td>Изначальное определение</td> + </tr> + </tbody> +</table> + +<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2> + +<div> + + +<p>{{Compat("javascript.builtins.Intl.DateTimeFormat.formatToParts")}}</p> +</div> + +<h2 id="Смотрите_также">Смотрите также</h2> + +<ul> + <li>{{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}</li> + <li>{{jsxref("DateTimeFormat.format", "Intl.DateTimeFormat.prototype.format")}}</li> + <li>{{jsxref("Date.prototype.toLocaleString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleDateString()")}}</li> + <li>{{jsxref("Date.prototype.toLocaleTimeString()")}}</li> +</ul> diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.html b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.html new file mode 100644 index 0000000000..2bd44c9522 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/index.html @@ -0,0 +1,276 @@ +--- +title: Intl.DateTimeFormat +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +tags: + - DateTimeFormat + - Internationalization + - JavaScript +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +--- +<div>{{JSRef("Global_Objects", "DateTimeFormat", "Intl,Collator,NumberFormat")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> + +<p>Объект <strong><code>Intl.DateTimeFormat</code></strong> является конструктором объектов, включающих языко-зависимое форматирование даты и времени.</p> + +<h2 id="Syntax" name="Syntax">Синтаксис</h2> + +<pre class="syntaxbox notranslate"><code>new Intl.DateTimeFormat([<var>locales</var>[, <var>options</var>]]) +Intl.DateTimeFormat.call(<var>this</var>[, <var>locales</var>[, <var>options</var>]])</code></pre> + +<h3 id="Parameters" name="Parameters">Параметры</h3> + +<dl> + <dt><code>locales</code></dt> + <dd> + <p>Необязательный параметр. Строка с языковой меткой BCP 47, либо массив таких строк. Описание общей формы и интерпретации аргумента <code>locales</code> смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_identification_and_negotiation", 1)}}. Разрешены следующие ключи расширения Unicode:</p> + + <dl> + <dt><code>nu</code></dt> + <dd>Используемая система нумерации. Возможные значения включают в себя: <code>"arab"</code>, <code>"arabext"</code>, <code>"bali"</code>, <code>"beng"</code>, <code>"deva"</code>, <code>"fullwide"</code>, <code>"gujr"</code>, <code>"guru"</code>, <code>"hanidec"</code>, <code>"khmr"</code>, <code>"knda"</code>, <code>"laoo"</code>, <code>"latn"</code>, <code>"limb"</code>, <code>"mlym"</code>, <code>"mong"</code>, <code>"mymr"</code>, <code>"orya"</code>, <code>"tamldec"</code>, <code>"telu"</code>, <code>"thai"</code>, <code>"tibt"</code>.</dd> + <dt><code>ca</code></dt> + <dd>Используемый календарь. Возможные значения включают в себя: <code>"buddhist"</code>, <code>"chinese"</code>, <code>"coptic"</code>, <code>"ethioaa"</code>, <code>"ethiopic"</code>, <code>"gregory"</code>, <code>"hebrew"</code>, <code>"indian"</code>, <code>"islamic"</code>, <code>"islamicc"</code>, <code>"iso8601"</code>, <code>"japanese"</code>, <code>"persian"</code>, <code>"roc"</code>.</dd> + </dl> + </dd> + <dt><code>options</code></dt> + <dd> + <p>Необязательный параметр. Объект с некоторыми или всеми из следующих свойств:</p> + + <dl> + <dt><code>localeMatcher</code></dt> + <dd>Используемый алгоритм сопоставления локалей. Возможными значениями являются <code>"lookup"</code> и <code>"best fit"</code>; значением по умолчанию является <code>"best fit"</code>. Информацию по этой опции смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_negotiation", 1)}}.</dd> + <dt><code>timeZone</code></dt> + <dd>Используемый часовой пояс. Единственным значением, которые реализации обязаны распознавать, является <code>"UTC"</code>; значением по умолчанию является часовой пояс по умолчанию среды выполнения. Реализации также могут распознавать названия часовых поясов из <a href="https://www.iana.org/time-zones">базы данных часовых поясов IANA</a>, например <code>"Asia/Shanghai"</code>, <code>"Asia/Kolkata"</code> или <code>"America/New_York"</code>.</dd> + <dt><code>hour12</code></dt> + <dd>Определяет, использовать ли 12-часовой формат времени (в противовес 24-часовому). Возможными значениями являются <code>true</code> и <code>false</code>; значение по умолчанию зависит от локали.</dd> + <dt><code>formatMatcher</code></dt> + <dd>Используемый алгоритм сопоставления форматов. Возможными значениями являются <code>"basic"</code> и <code>"best fit"</code>; значением по умолчанию является <code>"best fit"</code>. Смотрите следующий абзац, объясняющий, как использовать это свойство.</dd> + </dl> + + <p>Следующие свойства описывают компоненты даты/времени, используемые в форматированном выводе, и их желаемые представления. Реализации должны поддерживать, как минимум, следующие подмножества:</p> + + <ul> + <li><code>weekday</code>, <code>year</code>, <code>month</code>, <code>day</code>, <code>hour</code>, <code>minute</code>, <code>second</code></li> + <li><code>weekday</code>, <code>year</code>, <code>month</code>, <code>day</code></li> + <li><code>year</code>, <code>month</code>, <code>day</code></li> + <li><code>year</code>, <code>month</code></li> + <li><code>month</code>, <code>day</code></li> + <li><code>hour</code>, <code>minute</code>, <code>second</code></li> + <li><code>hour</code>, <code>minute</code></li> + </ul> + + <p>Также реализации могут поддерживать другие подмножества и запросы будут сравниваться со всеми доступными подмножествами представлений для поиска наилучшего соответствия. Для такого сравнения доступно два алгоритма, нужный из которых выбирается свойством <code>formatMatcher</code>: <a href="http://www.ecma-international.org/ecma-402/1.0/#BasicFormatMatcher">чётко определённый алгоритм <code>"basic"</code></a> и зависящий от реализации алгоритм <code>"best fit"</code>.</p> + + <dl> + <dt><code>weekday</code></dt> + <dd>Представление дней недели. Возможными значениями являются <code>"narrow"</code>, <code>"short"</code> и <code>"long"</code>.</dd> + <dt><code>era</code></dt> + <dd>Представление эр. Возможными значениями являются <code>"narrow"</code>, <code>"short"</code> и <code>"long"</code>.</dd> + <dt><code>year</code></dt> + <dd>Представление лет. Возможными значениями являются <code>"numeric"</code> и <code>"2-digit"</code>.</dd> + <dt><code>month</code></dt> + <dd>Представление месяцев. Возможными значениями являются <code>"numeric"</code>, <code>"2-digit"</code>, <code>"narrow"</code>, <code>"short"</code> и <code>"long"</code>.</dd> + <dt><code>day</code></dt> + <dd>Представление дней. Возможными значениями являются <code>"numeric"</code> и <code>"2-digit"</code>.</dd> + <dt><code>hour</code></dt> + <dd>Представление часов. Возможными значениями являются <code>"numeric"</code> и <code>"2-digit"</code>.</dd> + <dt><code>minute</code></dt> + <dd>Представление минут. Возможными значениями являются <code>"numeric"</code> и <code>"2-digit"</code>.</dd> + <dt><code>second</code></dt> + <dd>Представление секунд. Возможными значениями являются <code>"numeric"</code> и <code>"2-digit"</code>.</dd> + <dt><code>timeZoneName</code></dt> + <dd>Представление названий часовых поясов. Возможными значениями являются <code>"short"</code> и <code>"long"</code>.</dd> + </dl> + + <p class="noinclude">Значение по умолчанию для всех свойств компонентов даты/времени является значение {{jsxref("Global_Objects/undefined", "undefined")}},но если все свойства компонентов будут равны {{jsxref("Global_Objects/undefined", "undefined")}}, то будет предполагаться, что значением свойств <code>year</code>, <code>month</code> и <code>day</code> является <code>"numeric"</code>.</p> + </dd> +</dl> + +<h2 id="Description" name="Description">Описание</h2> + +<h3 id="Properties" name="Properties">Свойства</h3> + +<dl> + <dt>{{jsxref("DateTimeFormat.prototype", "Intl.DateTimeFormat.prototype")}}</dt> + <dd>Позволяет добавлять свойства ко всем объектам.</dd> +</dl> + +<h2 id="Methods" name="Methods">Методы</h2> + +<dl> + <dt>{{jsxref("DateTimeFormat.supportedLocalesOf", "Intl.DateTimeFormat.supportedLocalesOf()")}}</dt> + <dd>Возвращает массив, содержащий те из предоставленных локалей, которые поддерживаются без отката к локали по умолчанию среды выполнения.</dd> +</dl> + +<h2 id="DateTimeFormat_instances" name="DateTimeFormat_instances">Экземпляры объекта <code>DateTimeFormat</code></h2> + +<h3 id="Properties_of_DateTimeFormat_instance" name="Properties_of_DateTimeFormat_instance">Свойства</h3> + +<p>Экземпляры <code>DateTimeFormat</code> наследуют следующие свойства из своего прототипа:</p> + +<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype', 'Properties')}}</div> + +<h3 id="Methods_of_DateTimeFormat_instance" name="Methods_of_DateTimeFormat_instance">Методы</h3> + +<p>Экземпляры <code>DateTimeFormat</code> наследуют следующие методы из своего прототипа:</p> + +<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/prototype', 'Methods')}}</div> + +<h2 id="Examples" name="Examples">Примеры</h2> + +<h3 id="Example_Using_DateTimeFormat" name="Example:_Using_DateTimeFormat">Пример: использование <code>DateTimeFormat</code></h3> + +<p>При базовом использовании без определения локали <code>DateTimeFormat</code> использует локаль и опции по умолчанию.</p> + +<pre class="brush: js notranslate">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +// Вывод format без аргументов зависит от реализации, +// локали по умолчанию и часового пояса по умолчанию +console.log(new Intl.DateTimeFormat().format(date)); +// → "12/19/2012", если код запущен с локалью en-US и часовым поясом America/Los_Angeles +</pre> + +<h3 id="Example_Using_locales" name="Example:_Using_locales">Пример: использование аргумента <code>locales</code></h3> + +<p>Этот пример показывает некоторые локализованные форматы даты и времени. Для получения формата языка, используемого в пользовательском интерфейсе вашего приложения, убедитесь, что вы указали этот язык (и, возможно, несколько запасных языков) через аргумент <code>locales</code>:</p> + +<pre class="brush: js notranslate">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +// Форматирование ниже предполагает, что местный часовой пояс равен +// America/Los_Angeles для локали США + +// В америкаском английском используется порядок месяц-день-год +console.log(new Intl.DateTimeFormat('en-US').format(date)); +// → "12/19/2012" + +// В британском английском используется порядок день-месяц-год +console.log(new Intl.DateTimeFormat('en-GB').format(date)); +// → "20/12/2012" + +// В корейском используется порядок год-месяц-день +console.log(new Intl.DateTimeFormat('ko-KR').format(date)); +// → "2012. 12. 20." + +// В большинстве арабоговорящих стран используют настоящие арабские цифры +console.log(new Intl.DateTimeFormat('ar-EG').format(date)); +// → "<span dir="rtl">٢٠/١٢/٢٠١٢</span>" + +// В Японии приложения могут захотеть использовать японский календарь, +// в котором 2012 год являеся 24-м годом эры Хейсей +console.log(new Intl.DateTimeFormat('ja-JP-u-ca-japanese').format(date)); +// → "24/12/20" + +// Если запрашиваемый язык может не поддерживаться, например +// балийский, откатываемся на запасной язык, в данном случае индонезийский +console.log(new Intl.DateTimeFormat(['ban', 'id']).format(date)); +// → "20/12/2012" +</pre> + +<h3 id="Example_Using_options" name="Example:_Using_options">Пример: использование аргумента <code>options</code></h3> + +<p>Формат даты и времени может быть настроен с помощью аргумента <code>options</code>:</p> + +<pre class="brush: js notranslate">var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0)); + +// Запрашиваем день недели вместе с длинным форматом даты +var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; +console.log(new Intl.DateTimeFormat('de-DE', options).format(date)); +// → "Donnerstag, 20. Dezember 2012" + +// Приложение может захотеть использовать UTC и показать это +options.timeZone = 'UTC'; +options.timeZoneName = 'short'; +console.log(new Intl.DateTimeFormat('en-US', options).format(date)); +// → "Thursday, December 20, 2012, GMT" + +// Иногда нам нужна большая точность +options = { + hour: 'numeric', minute: 'numeric', second: 'numeric', + timeZoneName: 'short' +}; +console.log(new Intl.DateTimeFormat('en-AU', options).format(date)); +// → "2:00:00 pm AEDT" + +// Иногда даже в США нужен 24-часовой формат времени +options = { + year: 'numeric', month: 'numeric', day: 'numeric', + hour: 'numeric', minute: 'numeric', second: 'numeric', + hour12: false +}; +console.log(date.toLocaleString('en-US', options)); +// → "12/19/2012, 19:00:00" +</pre> + +<h2 id="Specifications" name="Specifications">Спецификации</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарии</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-12.1', 'Intl.DateTimeFormat')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Изначальное определение.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatChrome("24")}}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Android</th> + <th>Chrome для Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("26")}}</td> + <td>{{CompatNo}}<br> + {{bug("864843")}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="See_also" name="See_also">Смотрите также</h2> + +<div>{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/Intl', 'See_also')}}</div> diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html new file mode 100644 index 0000000000..dfaf7d5c92 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/prototype/index.html @@ -0,0 +1,108 @@ +--- +title: Intl.DateTimeFormat.prototype +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/prototype +tags: + - DateTimeFormat + - Internationalization + - JavaScript + - Property + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat +--- +<div>{{JSRef("Global_Objects", "DateTimeFormat", "Intl,Collator,NumberFormat")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> +<p>Свойство <strong><code>Intl.DateTimeFormat.prototype</code></strong> представляет объект прототипа конструктора {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}.</p> + +<div>{{js_property_attributes(0, 0, 0)}}</div> + +<h2 id="Description" name="Description">Описание</h2> +<p>Смотрите {{jsxref("Global_Objects/DateTimeFormat", "DateTimeFormat")}} для описания экземпляров <code>Intl.NumberFormat</code>.</p> +<p>Экземпляры {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} наследуются от <code>Intl.NumberFormat.prototype</code>. Изменения объекта прототипа наследуются всеми экземплярами {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}.</p> + +<h2 id="Properties" name="Properties">Свойства</h2> +<dl> + <dt><code>Intl.DateTimeFormat.prototype.constructor</code></dt> + <dd>Ссылка на {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}.</dd> + <dt>{{jsxref("DateTimeFormat.format", "Intl.DateTimeFormat.prototype.format")}}</dt> + <dd>Геттер; возвращает функцию, форматирующую дату согласно локали и опциям форматирования этого объекта {{jsxref("Global_Objects/DateTimeFormat", "DateTimeFormat")}}.</dd> +</dl> + +<h2 id="Methods" name="Methods">Методы</h2> +<dl> + <dt>{{jsxref("DateTimeFormat.resolvedOptions", "Intl.DateTimeFormat.prototype.resolvedOptions()")}}</dt> + <dd>Возвращает новый объект со свойствами, отражающими локаль и опции форматирования, вычисленные при инициализации объекта.</dd> +</dl> + +<h2 id="Specifications" name="Specifications">Спецификации</h2> +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарии</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-12.2.1', 'Intl.DateTimeFormat.prototype')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Изначальное определение.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> +<div>{{CompatibilityTable}}</div> +<div id="compat-desktop"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatChrome("24")}}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> +<div id="compat-mobile"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Android</th> + <th>Chrome для Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("26")}}</td> + <td> + {{CompatNo}}<br> + {{bug("864843")}} + </td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> + +<h2 id="See_also" name="See_also">Смотрите также</h2> +<ul> + <li>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</li> +</ul> diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html new file mode 100644 index 0000000000..a1cb4bff8b --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/resolvedoptions/index.html @@ -0,0 +1,116 @@ +--- +title: Intl.DateTimeFormat.prototype.resolvedOptions() +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions +tags: + - DateTimeFormat + - Internationalization + - JavaScript + - Method + - NeedsExample + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions +--- +<div>{{JSRef("Global_Objects", "DateTimeFormat", "Intl,Collator,NumberFormat")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> +<p>Метод <strong><code>Intl.DateTimeFormat.prototype.resolvedOptions()</code></strong> возвращает новый объект со свойствами, отражающими локаль и параметры форматирования даты и времени, вычисленные во время инициализации соответствующего объекта {{jsxref("Global_Objects/DateTimeFormat", "DateTimeFormat")}}.</p> + +<h2 id="Syntax" name="Syntax">Синтаксис</h2> +<pre class="syntaxbox"><code><var>dateTimeFormat</var>.resolvedOptions()</code></pre> + +<h2 id="Description" name="Description">Описание</h2> +<p>Возвращает новый объект со свойствами, отражающими локаль и параметры форматирования чисел, вычисленные во время инициализации соответствующего объекта {{jsxref("Global_Objects/DateTimeFormat", "DateTimeFormat")}}. Объект содержит следующие свойства:</p> +<dl> + <dt><code>locale</code></dt> + <dd>Языковая метка BCP 47 реально используемой локали. Если во входной языковой метке BCP 47 запрошены какие-либо расширения Unicode, приведшие к этой локали, запрошенные и поддерживаемые для этой локали пары ключ-значение также будут включены в свойство <code>locale</code>.</dd> + <dt><code>calendar</code></dt> + <dt><code>numberingSystem</code></dt> + <dd>Значения, запрошенные ключами расширения Unicode <code>"ca"</code> и <code>"nu"</code>, либо значения по умолчанию.</dd> + <dt><code>timeZone</code></dt> + <dd>Значение, предоставленное для этого свойства в аргументе <code>options</code>; {{jsxref("Global_Objects/undefined", "undefined")}} (представляет временную зону по умолчанию среды выполнения), если ничего не было предоставлено. Предупреждение: приложения не должны полагаться на возврат {{jsxref("Global_Objects/undefined", "undefined")}}, поскольку будущие версии вместо него могут возвращать строковое значение, идентифицирующее временную зону по умолчанию среды выполнения.</dd> + <dt><code>hour12</code></dt> + <dd>Значение, предоставленное для этого свойства в аргументе <code>options</code>, либо значение по умолчанию.</dd> + <dt><code>weekday</code></dt> + <dt><code>era</code></dt> + <dt><code>year</code></dt> + <dt><code>month</code></dt> + <dt><code>day</code></dt> + <dt><code>hour</code></dt> + <dt><code>minute</code></dt> + <dt><code>second</code></dt> + <dt><code>timeZoneName</code></dt> + <dd>Значения, получившиеся в результате объединения соответствующих свойств в аргументе <code>options</code> и доступных комбинаций и представлений форматирования даты/времени в выбранной локали. Некоторые из этих свойств могут не присутствовать, что означает, что соответствующие компоненты не попадают в форматированный вывод.</dd> +</dl> + +<h2 id="Specifications" name="Specifications">Спецификации</h2> +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарии</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-12.3.3', 'Intl.DateTimeFormat.prototype.resolvedOptions')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Изначальное определение.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> +<div>{{CompatibilityTable}}</div> +<div id="compat-desktop"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatChrome("24")}}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> +<div id="compat-mobile"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Android</th> + <th>Chrome для Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("26")}}</td> + <td> + {{CompatNo}}<br> + {{bug("864843")}} + </td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> + +<h2 id="See_also" name="See_also">Смотрите также</h2> +<ul> + <li>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</li> +</ul> diff --git a/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html new file mode 100644 index 0000000000..54a485d2c1 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/intl/datetimeformat/supportedlocalesof/index.html @@ -0,0 +1,118 @@ +--- +title: Intl.DateTimeFormat.supportedLocalesOf() +slug: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf +tags: + - DateTimeFormat + - Internationalization + - JavaScript + - Method + - Prototype +translation_of: Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/supportedLocalesOf +--- +<div>{{JSRef("Global_Objects", "DateTimeFormat", "Intl,Collator,NumberFormat")}}</div> + +<h2 id="Summary" name="Summary">Сводка</h2> +<p>Метод <strong><code>Intl.DateTimeFormat.supportedLocalesOf()</code></strong> возвращает массив, содержащий те из предоставленных локалей, что поддерживаются при форматировании даты и времени без отката к локали по умолчанию среды выполнения.</p> + +<h2 id="Syntax" name="Syntax">Синтаксис</h2> +<pre class="syntaxbox"><code>Intl.DateTimeFormat.supportedLocalesOf(<var>locales</var>[, <var>options</var>])</code></pre> + +<h3 id="Parameters" name="Parameters">Параметры</h3> +<dl> + <dt><code>locales</code></dt> + <dd>Строка с языковой меткой BCP 47, либо массив таких строк. Описание общей формы и интерпретации аргумента <code>locales</code> смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_identification_and_negotiation", 1)}}.</dd> + <dt><code>options</code></dt> + <dd> + <p>Необязательный параметр. Объект, который может содержать следующее свойство:</p> + <dl> + <dt><code>localeMatcher</code></dt> + <dd>Используемый алгоритм сопоставления локалей. Возможными значениями являются <code>"lookup"</code> и <code>"best fit"</code>; значением по умолчанию является <code>"best fit"</code>. Информацию по этой опции смотрите на {{jsxref("Global_Objects/Intl", "странице, посвящённой объекту Intl", "#Locale_negotiation", 1)}}.</dd> + </dl> + </dd> +</dl> + +<h2 id="Description" name="Description">Описание</h2> +<p>Возвращает массив с подмножеством языковых меток, предоставленных в аргументе <code>locales</code>. Возвращаются те языковые метки, для которых среда выполнения поддерживает форматирование даты и времени без отката к локали по умолчанию; при поиске используется предоставленный алгоритм сопоставления локалей.</p> + +<h2 id="Examples" name="Examples">Примеры</h2> + +<h3 id="Example_Using_supportedLocalesOf" name="Example:_Using_supportedLocalesOf">Пример: использование <code>supportedLocalesOf</code></h3> +<p>Предполагая, что среда выполнения поддерживает индонезийское и немецкое, но на балийское форматирование даты и времени, метод <code>supportedLocalesOf</code> вернёт неизменными индонезийскую и немецкую языковые метки, даже несмотря на то, что сортировка <code>pinyin</code> не относится к форматированию даты и времени, не используется с индонезийским языком и вряд ли будет поддерживаться в немецком языке для Индонезии. Обратите внимание на используемую здесь спецификацию алгоритма <code>"lookup"</code> — сопоставление <code>"best fit"</code> может решить, что индонезийский язык является адекватным сопоставлением с балийским, поскольку большинство людей, говорящих на балийском, также понимают индонезийский, и поэтому может возвратиться ещё и языковая метка балийского языка.</p> +<pre class="brush: js">var locales = ['ban', 'id-u-co-pinyin', 'de-ID']; +var options = { localeMatcher: 'lookup' }; +console.log(Intl.DateTimeFormat.supportedLocalesOf(locales, options).join(', ')); +// → "id-u-co-pinyin, de-ID" +</pre> + +<h2 id="Specifications" name="Specifications">Спецификации</h2> +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Спецификация</th> + <th scope="col">Статус</th> + <th scope="col">Комментарии</th> + </tr> + <tr> + <td>{{SpecName('ES Int 1.0', '#sec-12.2.2', 'Intl.DateTimeFormat.supportedLocalesOf')}}</td> + <td>{{Spec2('ES Int 1.0')}}</td> + <td>Изначальное определение.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> +<div>{{CompatibilityTable}}</div> +<div id="compat-desktop"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatChrome("24")}}</td> + <td>{{CompatGeckoDesktop("29")}}</td> + <td>{{CompatIE("11")}}</td> + <td>{{CompatOpera("15")}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> +<div id="compat-mobile"> + <table class="compat-table"> + <tbody> + <tr> + <th>Возможность</th> + <th>Android</th> + <th>Chrome для Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Phone</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Базовая поддержка</td> + <td>{{CompatNo}}</td> + <td>{{CompatChrome("26")}}</td> + <td> + {{CompatNo}}<br> + {{bug("864843")}} + </td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> + </table> +</div> + +<h2 id="See_also" name="See_also">Смотрите также</h2> +<ul> + <li>{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}</li> +</ul> |