2016-04-27 65 views
0
var dateTest = new Date('2015-03-31'); 
console.log(dateTest); 

結果:爲什麼日期比預期提前一天?

星期一2015年3月30日20:00:00 GMT-0400(東部夏令時間)

但是我希望這是3月31日我怎麼可以這樣做?

+2

它將您傳遞的日期作爲UTC,然後應用您當地的UTC修改器,即-4,因此2015-03-31 00 - 4h = 2015-03-30 20 –

+0

** GMT-0400 ** .... – Oriol

回答

2

因爲它根據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()方法來代替,它會給你你所期望的日期,雖然不是在你的時區。