JavaScript Date构造函数落后一天但不考虑时区?

时间:2013-12-29 03:58:53

标签: javascript date

This SO post解决了为什么JavaScript Date构造函数可以休息一天,但我们看到的输出不考虑时区变化,即它在我们的时区(PST)显示午夜。

有什么线索发生了什么?最终,我们希望在用户的本地时区获取日期(没有时间),添加X天,将此新日期写入localStorage,然后获取新日期。现在,由于下面的问题,我们从localStorage获取的内容有一天落后。

var test = new Date( "Sun Dec 29 2013" )
Sat Dec 28 2013 00:00:00 GMT-0800 (Pacific Standard Time)

以下是基于评论的更多细节:

var date = new Date(); 
var dateAsString = date.toDateString();
console.log(new Date(dateAsString)); 

1 个答案:

答案 0 :(得分:-1)

使用用户的时区偏移量加上时间字符串来创建符合Date Time string format的日期。例如:

var foo = new Date().getTimezoneOffset() / 60;
var bar = new Date().toISOString();
var baz = new Date(bar.replace("Z","+0" + foo + ":00") );

适用于具有正的单位数偏移的时区。