我想知道是否有办法在 php 中获取用户的时区,然后根据查看者的时区显示时间。我知道它可以用 javascript 完成,但我想要 php 中的解决方案。我进行了很多搜索,但找不到完成这项工作的方法。
所以基本上假设时间是 8:30 GMT+0530。如果用户在纽约查看它,我希望它在印度时区,那么它应该是 21:30。
如果您在注册时添加了用户时区,或者您以某种方式知道用户时区,那么您可以试试这个...
$users = [
[
'username' => 'foo',
'timezone' => 'America/Los_Angeles'
],
[
'username' => 'bar',
'timezone' => 'America/New_York'
]
];
foreach ($users as $user) {
date_default_timezone_set($user['timezone']);
echo $user['username'] . ' date and time is ' . date('Y-m-d H:i:s') . '<br />';
}
输出
foo time is 2013-02-28 18:13:49
bar time is 2013-02-28 21:13:49
您还可以在 JavaScrpt 中使用用户时区在 JavaScript 中获取客户端的时区。发出 Ajax 请求并保存在 PHP 会话或数据库中。
您可以通过将用户的 IP 与许多可用的地理位置数据库(例如IPInfoDB )交叉来获取用户的时区
http://ipinfodb.com/ip_location_api.php
您需要注册一个免费的 API 密钥,但他们也为您提供了一个工作示例(上图)