JavaScript:日期显示的值不正确(?)

时间:2018-12-09 17:03:20

标签: javascript date

下面是以下代码段:

  date2 = new Date(1518, 8, 6, 0, 0, 0, 0);
  console.log(date2);
我希望返回的

1518-09-06T00:00:00.000Z

但console.log代替:

1518-09-05T22:43:40.000Z

我在这里想念什么?

编辑: 看来,问题与node.js有关,当我使用node运行代码时出现了问题。

如果我在Chrome Dev Tools控制台中运行它,则结果符合预期:

Fri Sep 06 1518 00:00:00 GMT+0116 (Central European Summer Time)

2 个答案:

答案 0 :(得分:2)

MDN documentation for Date包含以下注释:

  

注意:如果Date作为具有多个自变量的构造函数被调用,则指定的自变量表示本地时间。如果需要UTC,请使用new Date(Date.UTC(...))和相同的参数。

换句话说,您传递的参数表示您当地时区的1518-09-06 00:00:00 ,它对应于UTC中的1518-09-05 22:43:40。时间是同一时刻,只是在不同的时区表示。

答案 1 :(得分:-4)

尝试改用矩,并按照您想要的方式格式化它,例如moment().format('DD-MM-YYYY HH:mm:ss')