【发布时间】:2019-05-22 02:24:57
【问题描述】:
使用区域设置“en-US”时不会发生此行为。
此外,无论小时设置为“2 位”还是“数字”,
“ja-JP”和“en-US”语言环境的输出保持不变。
这是一个错误吗?是否有解决方法以这种格式以 2 位数字显示小时?
yyyy/MM/dd HH:mm:ss
function showDate() {
var date = new Date('2019-05-22T00:37:36.37Z');
var options = { year: 'numeric', day: '2-digit', month: '2-digit',
hour: '2-digit', minute: '2-digit', second: '2-digit',
hour12: false };
document.querySelector("#ja-jp").innerHTML = date.toLocaleString('ja-JP', options);
document.querySelector("#en-us").innerHTML = date.toLocaleString('en-US', options);
}
window.onload = showDate;
<div id="ja-jp"></div>
<div id="en-us"></div>
【问题讨论】:
-
如果是一个错误,Chrome、Firefox、Safari(IE?未测试)都得到相同的结果会很奇怪。但是,reading the specs,当
Intl.NumberFormat('ja-JP', {minimumIntegerDigits: 2, useGrouping: false}).format(9)返回"09"时,我似乎无法找到他们如何实现此结果... -
当区域设置为
ja-JP时,hour选项的实际值似乎无关紧要。它是永久数字。我不知道为什么。
标签: javascript datetime