【问题标题】:how to handle DST and timezones in JavaScript如何在 JavaScript 中处理 DST 和时区
【发布时间】:2012-02-21 15:37:56
【问题描述】:

当您的网络服务接受来自与服务器不同时区的请求时,处理 DST 值的最佳方法是什么?

我的网络服务使用 ISO8601 标准 (2012-02-21T05:00:00.000-05:00) 接受日期字符串

我想考虑 DST,但不希望维护或连接到数据库以获取从不同时区到我的服务器的每个请求的 DST。

我考虑的一种方法是使用服务器的默认 DST 设置,然后对于传入的每个请求将其转换为与我的服务器所在的时区相同的时区。然后在处理完成后,将字符串转换回时区客户并返回。响应数据的转换可以在服务端或客户端完成。

有什么建议吗?

【问题讨论】:

  • 夏令时是一个愚蠢的臀部疼痛。将所有内容存储在 GTM/UTC 中,并在必要时根据需要转换回来。

标签: javascript utc iso iso8601


【解决方案1】:

您还可以查看用于在 Javascript 中处理日期对象的 XDate 项目。它与 JodaTime(在 Java 中)非常相似。非常易于使用和语义化。

XDate project

【讨论】:

    【解决方案2】:

    这就是我要做的。在提交数据/时间之前,将字符串解析为 JavaScript Date 对象。然后调用getTime() 并提交该值。 getTime() 返回自 UTC 纪元以来的毫秒数,因此实际上它使您的时间标准化。然后,当您向用户返回数据时,将您的 UTC 毫秒值传递给 Date 对象的构造函数,并按照您的意愿显示时间。默认情况下,它将显示在用户的时区中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-04
      • 2016-02-19
      • 2012-04-05
      • 2011-04-17
      • 2019-05-06
      • 2012-09-12
      • 1970-01-01
      • 2014-06-03
      相关资源
      最近更新 更多