【发布时间】:2011-01-20 03:20:08
【问题描述】:
我希望能够猜测用户的时区偏移量以及是否正在应用夏令时。目前,我为此找到的最权威的代码在这里:
http://www.michaelapproved.com/articles/daylight-saving-time-dst-detect/
所以这给了我与 DST 指示器一起的偏移量。
现在,我想在我的 PHP 脚本中使用这些,以便为用户输出本地日期/时间......但是什么是最好的呢?我想我有两个选择:
a) 从 timezone_abbreviations_list() 的输出中选择一个具有相同偏移量和 DST 设置的随机时区。然后调用 date_timezone_set() 以便对时间应用正确的处理。
b) 继续将日期视为 UTC,但只需添加一些时间戳以添加适当的小时数。
我的感觉是选项 B 是最好的方法。这样做的原因是,对于 A,我可以使用一个时区,虽然它在偏移量/dst 方面是正确的,但可能在幕后有一些模糊的规则,可能会产生令人惊讶的结果(我不知道,但尽管如此我不认为我可以排除它)。
然后我会在每个会话开始时使用 Javascript 重新检查时区,以便捕捉用户的时区何时更改(非常不可能)或他们进入 DST 期间。
对于脑残,我真的很抱歉——我真的只是在确信上述方法是有效的之后。
谢谢,
詹姆斯。
【问题讨论】:
标签: php javascript timezone