【问题标题】:Date in javascript show a day before of what it's really [duplicate]javascript中的日期显示实际情况的前一天[重复]
【发布时间】:2017-02-22 18:51:15
【问题描述】:

有人知道为什么会这样吗?我(从数据库中)读取了一个日期(2016-10-05),但是 Javascript 创建了像 2016-10-04 这样的对象。 可以与时区相关吗?有人可以指出一些让我帮助解决这个问题的来源吗? (我有搜索,但说实话,不知道问题是什么,很难找到更多信息)

【问题讨论】:

  • 原因是TC39 committee 决定将ISO 8601 格式的仅日期字符串解析为UTC,而ISO 8601 要求将它们解析为本地。

标签: javascript date


【解决方案1】:

您指定的时间是格林威治标准时间午夜或 0 小时。 EDT 时区比 GMT 晚 4 小时,因此当您将时间转换为 EDT 时区(您的本地时区)时,它是前一天的 -4 小时。

【讨论】:

    【解决方案2】:

    我在MDN Date页面找到了一些信息,使用d.toUTCString()方法可以转GMT。

    var d = new Date('2016-10-05T00:00:00.000+0000');
    d.toUTCString();
    

    返回“格林威治标准时间 2016 年 10 月 5 日星期三 00:00:00”

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      相关资源
      最近更新 更多