如何在PHP中获取访问者的时区?

4

有没有一种方法可以在PHP中查找访问者的时区?


可能有一种方法,但对于像那样的过程来说太复杂了。 - Anthony Forloney
2个回答

7

如果没有相关信息,单靠PHP是无法完成的。但是,如果你知道用户的位置,你可能可以通过地理定位来确定可能的时区。

你需要借助JavaScript的帮助。我在谷歌上搜索到以下JS代码片段,它可以返回客户端的时区偏移量:

var tzo=(new Date().gettimezoneoffset()/60)*(-1); 

从这里开始,您可以使用JS设置一个cookie,该cookie可以在PHP中访问。或者,您可以通过ajax调用获取此信息。


设置Cookie并使用PHP访问它是个好主意。谢谢! - Moon
用户如果在国外使用他的笔记本电脑会怎样? - Nazariy
@Nazariy 用户所显示的时区应该反映其操作系统中设置的时区。如果他们在国外并想要看到相对于那里的时区,他们应该在操作系统中进行设置。与往常一样,在您的网站上显示的每个日期都应该附带时区信息,以避免混淆。 - Mike B
我同意Mike的观点,使用地理位置会剥夺用户决定自己所处时区的权力。 - Mike B
大多数人并不像我们这样极客,他们不会费心去搞系统设置。由于其他原因,cookie可能会受到限制或JavaScript失败。当然,他们需要一个切换时区的选项。 - Nazariy

6

@Nazairy // 哇..那是一个很棒的网站。而且它还是免费的。谢谢!! - Moon
1
如果一个IP范围跨越多个时区会怎样? - Mike B
我在谷歌上搜索了这个问题,除了我们的对话之外什么都没有找到。 我猜你所说的重叠是指将IP转换为经度,这会给我们带来模糊的结果。 使用GeoIP数据库,IP地址与城市相关联,该城市属于特定的时区。 - Nazariy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接