下面是以下代码段:
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)
答案 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')