【发布时间】:2014-01-16 07:17:24
【问题描述】:
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)
以下是基于 cmets 的更多细节:
var date = new Date();
var dateAsString = date.toDateString();
console.log(new Date(dateAsString));
【问题讨论】:
-
如果希望它是一个一致的时区,为什么不在构造日期对象的时候加上时区呢?在
Sun Dec 29 2013之后添加GMT将使日期保持一致,而与用户时区无关。关于正在发生的事情,Javascript 将在客户端机器上解释它,因此在没有时区的情况下,它将假定用户。 -
好的 什么 版本的 JavaScript 你正在使用?我在您所指的那个时区,当我以这种方式声明变量时,我的回复显示
Sun Dec 29 2013 00:00:00 GMT-0800 (PST)。为什么不能只使用 ISO 8601?有什么原因吗? -
@RayToal 我们从 Chrome 开发者工具的控制台运行这些命令。我们如何检查 JS 版本?我们如何执行 ISO 8601?它可以在 PhoneGap 应用中运行吗?
-
@Robert,我们需要用户的时区,因为我们会在午夜(他们的时间)之后检查。
-
然后使用
.getTimezoneOffset()看看在祖鲁午夜之后您需要等待多长时间。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript date