如何在JavaScript中处理DST和时区

时间:2012-02-21 15:37:57

标签: javascript utc iso iso8601

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

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

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

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

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

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

XDate project

答案 1 :(得分:2)

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