为什么 JavaScript 会在我设定的日期前一天显示给我?

Why does JavaScript show me one day before my set date?

我正在尝试根据我拥有的一些 json 数据查看日期。

我的代码是:

var date = new Date(json.events[i].event.first_date);
alert(date);

现在,json.events[i].event.first_date 只是 returns 格式为 yyyy-mm-dd 的日期。

我注意到,但是当我执行 alert(date); 时,我看到的是实际数据显示日期 之前 的那一天。

例如,json.events[0].event.first_date 给出日期 2015-06-02 但提醒显示 2015 年 6 月 1 日。

我从位于德国某处的 url 获得我的 json,而我在美国。日期会不会因为时区而被弄乱?

当您从不带时区的字符串创建日期时,您会得到日期 + 时区校正 - 如果您在美国,那么您会得到类似 GMT-7 的东西,并且您会得到 6 月的第二天减去 7 小时 - 前一天。尝试拆分您的日期并使用 new Date(2015, 7, 1) 构造函数,您将获得您期望的日期。字符串解析参考文档-https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/parse