Javascript 在Date.toLocaleString()中,locale";ja JP“;can';是否以两位数格式显示小时?

Javascript 在Date.toLocaleString()中,locale";ja JP“;can';是否以两位数格式显示小时?,javascript,datetime,Javascript,Datetime,使用区域设置“en-US”时不会发生此行为 此外,小时是设置为“2位数”还是“数字” “ja-JP”和“en-US”区域设置的输出保持不变 这是虫子吗?是否有一种解决方法可以用这种格式以2位数字显示小时 yyyy/MM/dd HH:MM:ss 函数showDate(){ 风险值日期=新日期('2019-05-22T00:37:36.37Z'); 变量选项={年:'数字',日:'两位数',月:'两位数', 小时:“两位数”,分钟:“两位数”,秒:“两位数”, hour12:false}; doc

使用区域设置“en-US”时不会发生此行为

此外,小时是设置为“2位数”还是“数字”
“ja-JP”和“en-US”区域设置的输出保持不变

这是虫子吗?是否有一种解决方法可以用这种格式以2位数字显示小时

yyyy/MM/dd HH:MM:ss

函数showDate(){
风险值日期=新日期('2019-05-22T00:37:36.37Z');
变量选项={年:'数字',日:'两位数',月:'两位数',
小时:“两位数”,分钟:“两位数”,秒:“两位数”,
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

不确定这是否对您有帮助,但请查看


在JS中格式化日期的一种非常好的方法。

不确定这是否能帮助您,但请看一看


在JS中设置日期格式是一种很好的方法。

我不太喜欢这种解决方法,所以我不会接受这个答案。
但既然它起作用了,我就把它放在这里

function formatDate(date) {
    var year = date.getFullYear();
    var month = ("0" + (date.getMonth() + 1)).slice(-2);
    var day = ("0" + date.getDate()).slice(-2);

    var hour = ("0" + date.getHours()).slice(-2);
    var minute = ("0" + date.getMinutes()).slice(-2);
    var second = ("0" + date.getSeconds()).slice(-2);

    return year + "/" + month + "/" + day + " " + hour + ":" + minute + ":" + second;
}

参考。

我真的不喜欢这个解决方法,所以我不会接受这个答案。
但既然它起作用了,我就把它放在这里

function formatDate(date) {
    var year = date.getFullYear();
    var month = ("0" + (date.getMonth() + 1)).slice(-2);
    var day = ("0" + date.getDate()).slice(-2);

    var hour = ("0" + date.getHours()).slice(-2);
    var minute = ("0" + date.getMinutes()).slice(-2);
    var second = ("0" + date.getSeconds()).slice(-2);

    return year + "/" + month + "/" + day + " " + hour + ":" + minute + ":" + second;
}

参考资料。

谢谢您的参考资料。我会注意到这一点,但我仍然希望我的实现中遗漏了一些东西。谢谢你的参考。我会注意到这一点,但我仍然希望我的实现中遗漏了一些东西。如果出现错误,Chrome、Firefox、Safari(IE?未经测试)都会得到相同的结果会很奇怪。然而,当
Intl.NumberFormat('ja-JP',{minimumIntegerDigits:2,usegrouting:false})时,我似乎找不到它们如何实现这个结果。format(9)
返回
“09”
…当区域设置为
ja-JP时,
hour
选项的实际值似乎不相关。它是永久的数字。我不知道为什么。如果有bug,Chrome、Firefox、Safari(即未测试)都会得到相同的结果会很奇怪。然而,当
Intl.NumberFormat('ja-JP',{minimumIntegerDigits:2,usegrouting:false})时,我似乎找不到它们如何实现这个结果。format(9)
返回
“09”
…当区域设置为
ja-JP时,
hour
选项的实际值似乎不相关。它是永久的数字。我不知道为什么。