【问题标题】:Why does JavaScript show me one day before my set date? [duplicate]为什么 JavaScript 会在我设定的日期前一天显示我? [复制]
【发布时间】:2015-11-29 21:18:47
【问题描述】:

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

我的代码是:

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

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

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

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

我从位于德国某处的网址获取我的 json,我在美国。会不会因为时区而弄乱了日期?

【问题讨论】:

  • javascript 代码在哪里运行?在德国还是在美国?
  • @cacho - jsfiddle。所以.. 我猜是美国。
  • @Arvind 似乎显示了同样的东西。
  • 将“00:00:00 GMT”连接到我的日期字符串(“Thu Oct 01 2015 00:00:00 GMT”)后,我得到了正确的日期。 (因为无论如何我都不需要时间)。 new Date('Thu Oct 01 2015 00:00:00 GMT')

标签: javascript date timezone


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2016-05-14
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多