toLocaleString не работает должным образом

1

Я пытаюсь распечатать дату/время в формате, удобном для пользователя. Я имею:

options = { day: "numeric", year: "numeric", month: "short", time: "short", hour12: false, hour: "2-digit", minute: "2-digit" };

Если locale явно указана, options как представляется, следуют:

date.toLocaleString("en-US", options);

будет производить:

26 июня, 2017, 13:05

Если я не укажу параметр locale:

date.toLocaleString(options);

будет производить:

6/26/2017, 1:05:00 PM

Какова местность, которая будет использоваться, если я ее оставлю? Насколько я знаю, локаль моего ПК и браузера, используемых для теста, находится в США.

Как отображать дату/время с использованием языка браузера без жесткого кодирования?

var options = { day: "numeric", year: "numeric", month: "short", time: "short", hour12: false, hour: "2-digit", minute: "2-digit" };

var D = new Date();
d = D.toLocaleString("en-US", options);
e = D.toLocaleString(options);
f = D.toLocaleString("en-US");

$("#d").text(d);
$("#e").text(e);
$("#f").text(f);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id='d'></div>
<div id='e'></div>
<div id='f'></div>
  • 1
    Для меня в НЛ с установкой в Великобритании я получаю 2017-6-26 18:32:23 без локали
Теги:
google-chrome

1 ответ

4
Лучший ответ
opts = { day: "numeric", year: "numeric", month: "short", time: "short", hour12: false, hour: "2-digit", minute: "2-digit" };
date.toLocaleString(undefined, opts);

Взято из:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

По сути, он по-прежнему требует, чтобы что-то было передано для этого первого параметра. В противном случае он игнорирует ваш объект options.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню