为什么日期比预期提前一天设定?

时间:2016-04-27 18:28:10

标签: javascript

var dateTest = new Date('2015-03-31');
console.log(dateTest);

结果:

  

2015年3月30日星期一20:00:00 GMT-0400(东部夏令时间)

但是我预计这将是3月31日。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

因为它根据UTC设置日期,并使用您的本地时区偏移量返回日期。我建议明确指定时区偏移量,如果这是您需要的,或者在事后添加时区偏移量。

var d = new Date('2015-03-31T00:00:00-0400');

// or

var d = new Date('2015-03-31');
d.setMinutes(d.getMinutes() + d.getTimezoneOffset());

如果您想要它是UTC,您可以在其上调用toUTCString()方法,这将为您提供您期望的日期,尽管不在您的时区。