Я пытаюсь использовать пользовательский шаблон с toLocaleDateString или Intl.DateTimeFormat в JavaScript, но, кажется, это игнорируется? - PullRequest
0 голосов
/ 17 октября 2018

Насколько я понимаю в стандарте 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).Я не тестировал другие браузеры.

...