Насколько я понимаю в стандарте ECMA (API 2.0), он позволяет вам использовать шаблон в качестве параметра в опциях для функций toLocaleDateString()
и toLocaleTimeString()
.
Я решил, что, возможно, я был неправ в этомпредположение, а затем перешел к попытке использовать Intl.DateTimeFormat в сочетании с датой.Это позволило мне успешно указать, что я хотел 24-часовые часы (am / pm был тогда опущен в конце строки).На данный момент я вижу, что указание шаблона не влияет на результат строки в течение времени.Итак, я думаю, что вопрос сейчас таков: должен ли он отвечать заданным шаблоном?В документе упоминается, что шаблон является «внутренним».Таким образом, возможно, что единственный способ получить желаемые результаты дд / мм / ГГГГ ЧЧ: ММ - это установить локаль, использующую этот шаблон (например, en-GB).Мне бы очень хотелось, чтобы у меня было больше контроля с помощью выражения стиля формата.Я надеялся, что это будет примерно так:
function getTime(objId)
{
let obj = document.getElementById(objId);
let today = new Date();
let options = {day:"numeric", month:"numeric", year:"numeric",
hour12:false, hour:"numeric", minute:"numeric",
pattern:"{day}/{month}/{year} {hour}:{minute}"};
obj.innerHTML = new Intl.DateTimeFormat([], options).format(today);
}
Так есть ли способ использовать пользовательский шаблон с этими датами?Или мне придется искать / создавать свою собственную библиотеку DateTime и / или создавать собственную функцию-прототип, чтобы переопределить их?
Мой желаемый вывод - это формат даты и времени в стиле C %d/%m/%Y %H:%M
.Числовой день, числовой месяц, полный год (4 цифры), 24-часовые часы, минуты.
PS этот вид работ obj.innerHTML = new Intl.DateTimeFormat("en-GB", options).format(today);
(и удаление шаблона из переменной опции) для вывода 17/10/2018, 03:06
(в Chrome 69.0.3497.100).Я не тестировал другие браузеры.