PHP:根据用户的时区显示时间

问题描述 投票:8回答:3

我想知道是否有办法在php中获取用户的时区,然后根据查看者的时区显示时间。我知道它可以在javascript中完成,但我想在PHP中的解决方案。我搜索了很多,但找不到办法让这项工作。

所以基本上假设时间是GMT + 0530的8:30。它在印度时区我想要如果用户在纽约看到这个,那么它应该是21:30。

php timezone
3个回答
6
投票

如果您在注册时添加了用户时区,或者您知道用户Timezone,那么您可以尝试这个...

$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

您还可以在JavaScript qazxsw poi中使用Timezone。发出Ajax请求并保存在PHP会话或数据库中。


3
投票

您必须获取用户信息并设置默认时区

看看Getting the client's timezone in JavaScript

date_default_timezone_set()


1
投票

您可以通过将IP与许多可用的地理位置数据库(例如ip geolocation api)交叉来获取用户时区

IPInfoDB

您需要注册一个免费的API密钥,但它们也为您提供了一个工作示例(上图)

© www.soinside.com 2019 - 2024. All rights reserved.