Javascript toLocaleString()返回了错误的月份?
我在这里不知所措。我需要在我的区域设置中显示JavaScript日期,但显示的区域设置字符串在未来1个月内关闭Javascript toLocaleString()返回了错误的月份?,javascript,firefox,internationalization,chromium,Javascript,Firefox,Internationalization,Chromium,我在这里不知所措。我需要在我的区域设置中显示JavaScript日期,但显示的区域设置字符串在未来1个月内关闭 <!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var d = new Date(2018,4,3,21,0); document.getElementById("demo").innerHTML = d.toLocaleString('de-D
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var d = new Date(2018,4,3,21,0);
document.getElementById("demo").innerHTML = d.toLocaleString('de-DE');
</script>
</body>
</html>
var d=新日期(2018年4月3日21日);
document.getElementById(“demo”).innerHTML=d.toLocaleString('de-de');
显示的结果是3.5.2018,21:00:00
,而不是3.4.2018,21:00:00
。如果我改为尝试Date.now()
,它会正常工作
在Ubuntu14.04.5和LinuxMint17.3上测试,Firefox 59.0.2(64位)和Chromium65.0.3325.181
如果我没有忽视某件事,我认为这是一个“严重的”严重的错误< /强>,但是在提交一个问题之前(我想我会在这里问)。
谢谢你对这件事的任何意见 Js new Date()从0到11开始计算月份。当您输入新日期时(2018,4,3)
按2018年5月3日计算。
并且,输出为2018年3月5日。Js new Date()从0到11开始计算月份。
当您输入新日期时(2018,4,3)
按2018年5月3日计算。
并且,输出是2018年3月5日。构造函数中的月份参数是基于0的 您可能会发现以下内容很有帮助: 参数月份以0为基础。这意味着一月=0,十二月=11。 -
Date()
构造函数中的月份参数是基于0的
您可能会发现以下内容很有帮助:
参数月份以0为基础。这意味着一月=0,十二月=11。
-
月份从0开始编制索引,因此0月份是1月份。在日期结构中,4是5月。谢谢,你说得对。我从未想过会出现这种不一致性,比如从1开始计算天数,从0开始计算月份。我现在必须转换从别处得到的值,取出月份,转换成数字,减去一,然后构造日期。菲伊。但无论如何,谢谢你向我指出这一点!(你应该给出答案,我不能对评论进行投票…)月份从0开始索引,所以0月份是1月份。在日期结构中,4是5月。谢谢,你说得对。我从未想过会出现这种不一致性,比如从1开始计算天数,从0开始计算月份。我现在必须转换从别处得到的值,取出月份,转换成数字,减去一,然后构造日期。菲伊。但无论如何,谢谢你向我指出这一点!(你应该给我一个答案,我不能反对评论…)谢谢,我没想到会出现这种不一致(在我看来),请看上面对@Andy G的评论。既然问题解决了,我现在就接受这个答案。谢谢,我没想到会出现这种不一致(在我看来),请参阅上面对@Andy G的评论。既然问题解决了,我现在就接受这个答案。