Javascript .toLocaleString()返回错误的月份?

时间:2018-04-03 10:47:26

标签: 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-DE');
</script>

</body>
</html>

显示的结果为3.5.2018, 21:00:00,而不是3.4.2018, 21:00:00。如果我尝试使用Date.now(),它可以正常工作。

使用Firefox 59.0.2(64位)和Chromium 65.0.3325.181在Ubuntu 14.04.5和Linux Mint 17.3上进行了测试。

如果我没有忽略某些东西,我认为这是一个严重的错误,但在提交问题之前(在哪里?)我想我会在这里问。

感谢您对此事的任何意见!

2 个答案:

答案 0 :(得分:1)

Js new Date()从0到11开始计数Month 何时,您输入新的日期(2018,4,3)
它被计算为2018年5月3日 而且,输出是3/5/2018。

答案 1 :(得分:1)

Date()构造函数中的month参数从0开始。

您可能会觉得这很有用:

  

参数月份为0。这意味着1月= 0和12月= 11。    - https://stackoverflow.com/a/49628544/4770754