JavaScript中新的Date()中显示的日期不正确

时间:2016-08-30 09:19:23

标签: javascript

enter image description here

这是我在chrome控制台中获得的。我通过“2016-09-05”(YYYY-MM-DD)作为日期,它显示我作为日期在2016年9月4日。

另一个构造函数显示正确的日期

enter image description here

传递逗号分隔需要一些标记+解析+使月零索引,我想避免

3 个答案:

答案 0 :(得分:14)

如果省略new Date(string)构造函数中的时间,则假定为UTC时间。所以显示的值实际上是正确的。使用new Date('2016-09-05 00:00')以本地时间创建日期对象。

答案 1 :(得分:0)

使用setFullYear语法为Date.setFullYear(年,月,日)

mydate = new Date();
mydate.setFullYear(2016, 08, 05);

答案 2 :(得分:0)

您可以使用UTC Date Conversion中的解决方案。 basicall执行以下操作:

console.log(new Date("2014-12-23"));
console.log(convertDateToUTC(new Date("2014-12-23")));

function convertDateToUTC(date) { 
return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()); 
}

输出就像在控制台中一样(对我来说至少:D)

Tue Dec 23 2014 01:00:00 GMT + 0100(MitteleuropäischeZeit)
2014年12月23日星期二00:00:00 GMT + 0100(MitteleuropäischeZeit)