如何处理夏令时的时区偏移?

时间:2014-12-06 04:10:38

标签: javascript php date

在我的网站中,用户A创建一个从上午9:00开始的活动。我将该时间转换为GMT,以便如果用户B在两个小时前的不同时区看到该事件,则可以将其转换为用户B的时区并显示该事件在上午11:00开始。

我的问题是,如果用户A在夏令时期间创建了一个事件,那么当夏令时超过时区时,会查看该事件的偏差将会减少一个小时。这导致事件从上午8:00开始,当时不是夏令时,而上午9:00是夏令时。有关如何使用javascript或php修复此问题的任何建议吗?

我唯一想到的是当我得到如下所示的时区偏移时,我是否应该始终将日期设置为1月,以便无论实际月份如何,我总是得到相同的时区偏移量?或者有更好的方法来解决这个问题吗?

d = new Date();
d.setMonth(1);
d.getTimezoneOffset()

1 个答案:

答案 0 :(得分:0)

getTimezoneOffset返回的时区偏移量表示上调用方法的日期,而不是当前时间。因此,只需要总是询问您正在展示的活动的时区,您应该没问题。

但是,请注意,如果您正在安排重复发生的事件,则需要将时间存储和处理为本地时间而不是通用时间。否则,每当夏令时开始或结束时,会议时间将跳一小时。