new Intl.DateTimeFormat('en', {
second: '2-digit'
})
ожидалось, что секунды будут выводиться в формате 01 02 03, но вместо этого выводятся 1 2 3, при чем когда я вывожу не только секунды, а и минуты
new Intl.DateTimeFormat('en', {
minute: '2-digit',
second: '2-digit'
})
то результат как и ожидалось будет 00:00, при чем есть еще одна особенность, если значение ключа указать 'numeric' то результат будет такой же
new Intl.DateTimeFormat('en', {
minute: 'numeric',
second: 'numeric'
})
выведет 00:00, хотя ожидается 0:0 - это нормальная работа этого конструктора и на что вообще должны влиять 'numeric' и '2-digit'?
и всё-таки есть способ вывести одни секунды в формате 00 с помощью Intl?
Тут, насколько я смог разобраться в стандарте, вырисовывается следующая картина. Стандарт говорит, что элементы внутреннего свойства [[localeData]]
, соответствующие поддерживаемым локалям, должны содержать свойство formats
, в котором перечислены все поддерживаемые комбинации опций, с соответствующими значениями этих опций. Конструктор при вызове ищет в этом списке комбинацию, наиболее близко соответствующую переданным опциям, и применяет именно найденные свойства.
Судя по всему в [[localeData]]['en']
хранится что-то таком духе: [..., {seconds : 'decimal'}, ...]
, и нет ничего более близкого к передаваемому {seconds : '2-digit'}
. Что-то аналогичное происходит и во втором случае, когда передается {minute: 'numeric', second: 'numeric'}
. Находится только {minute: '2-digit', second: '2-digit'}
, и в итоге применяются именно эти опции.
Результат можно наблюдать при помощи метода resolvedOptions()
:
console.log(new Intl.DateTimeFormat('en', {
second: '2-digit'
}).resolvedOptions());
console.log(new Intl.DateTimeFormat('en', {
minute: 'numeric',
second: 'numeric'
}).resolvedOptions());
Мораль такова: использовать произвольные сочетания опций форматирования нельзя, а можно только определенные их комбинации. К сожалению, не знаю, где посмотреть доступные варианты, и есть ли среди локалей такая, в которой предусмотрено использование {second : '2-digit'}
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как можно произвести замены только по захваченному регуляркой тексту? Есть файл, где нужно поменять содержимое определённых теговПример:
Всем приветЕсть необходимость переводить отдельные строки с одного языка на другой
Здраствуйте, подскажите, как правильно пользоваться GitHub? Через npm умею устанавливать пакеты, а как их правильно подключить к проекту не могу...
Здраствуйте, не получается подключить пакеты к проекту, в моем случае палитру к backend админкиВ админке использую Yii и Php Пробовал по инструкции...