PHP 如何获取区域设置 GMT 日期时间显示如下:
14/06/2013 10:38 (GMT+8)
目前我的网站有这种格式来显示日期时间,如:
14/06/2013 07:01:14 AM GMT+0400
我的托管服务提供商在欧洲,如果用户在日本(+9:00)浏览我的网站,它会如何显示14/06/2013 10:38 (GMT+9)
?
时区的问题是您的服务器没有可靠的方法来确定您的用户在哪里。甚至浏览器也没有可靠的方法来确定这一点,尽管它更好地猜测。当您必须应对本质上未知的服务器时间时,问题会变得更糟
因此,对于您的服务器端,将所有日期和时间转换为 UTC。以 UTC 执行所有服务器操作。
当您向用户显示时间时,转换为他们的本地时区(您可以通过询问他们找到!),或者以 UTC 将时间发送到浏览器并让浏览器进行转换,或者让浏览器在首次连接到站点时提供其时区,并使用该信息转换输出时间。
其中,第一个选项是最可靠的,但您的站点可能无法接受。选项 2 和 3 依赖于浏览器本地用户设置的配置数据。