【问题标题】:How to keep the Date as it is without being converted into local time zone?如何在不转换为本地时区的情况下保持日期不变?
【发布时间】:2015-01-03 18:01:19
【问题描述】:

我在 javascript 中遇到本地时区问题。如果我从服务器得到一个字符串值是“2014-02-03T00:00:00.000Z”,一旦我将它传递给 Date 对象 new Date('2014-02-03T00:00:00.000Z'),新日期对象将在本地时区前。 2014 年 2 月 2 日星期日 18:00:00 GMT-0600 (CST)。如何将值保持为 'Mon Feb 03 2014 00:00:00' ?我看到很多人都在使用 moment.js 来处理日期,但我没有找到任何关于这个问题的帮助。

谢谢

【问题讨论】:

  • 我相信 Z 会将日期调整为当地时间。你试过去掉 Z 吗?
  • 仍然无法正常工作。即使我删除了 'Z' new Date('2014-02-03T00:00:00.000') 和 new Date('2014-02-03T00:00:00.000Z') 结果相同,我仍然得到相同的结果跨度>

标签: javascript


【解决方案1】:

您可以使用 getUTCDate() 方法。它会返回正确的日期。

http://jsbin.com/zizukapuba/1/edit?output

它将参考系统本地时区将日期转换为所需的格式。

注意:如果您使用 getISOString() 方法,那么它将再次参考您的本地时间进行更改,即 GMT -6.00。

【讨论】:

    【解决方案2】:

    Date 对象将您的日期存储为“2014-02-03T00:00:00.000Z”。

    当您显示 Date 对象时,toString() 函数用于获取字符串以显示日期。 toString() 使用本地时区显示日期。尝试使用 toISOString() 函数或 toUTCDateString()。

    【讨论】:

    • 好的,它将显示“2014-02-03T00:00:00.000Z”,但我希望日期对象仍为“2014-02-03T00:00:00.000Z”。当我在调试控制台中测试它时,它仍然显示我的日期对象已更改为我的本地时区。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2021-09-19
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多