我想知道是否有办法在php中获取用户的时区,然后根据查看者的时区显示时间。我知道它可以在javascript中完成,但我想在PHP中的解决方案。我搜索了很多,但找不到办法让这项工作。
所以基本上假设时间是GMT + 0530的8:30。它在印度时区我想如果用户在纽约看到这个,那么它应该是21:30。
答案 0 :(得分:6)
如果您在注册时添加了用户时区,或者您以某种方式了解用户时区,那么您可以试试这个......
$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 Getting the client's timezone in JavaScript中使用Timezone。发出Ajax请求并保存在PHP会话或数据库中。
答案 1 :(得分:3)
答案 2 :(得分:1)
您可以通过将IP与许多可用的地理位置数据库(例如IPInfoDB
)交叉来获取用户时区http://ipinfodb.com/ip_location_api.php
您需要注册一个免费的API密钥,但它们也为您提供了一个工作示例(上图)