如何自动检测用户的时区?

Bal*_*ran 15 php timezone

嗨,我正在创建一个Web应用程序,如果用户注册,我们将显示创建日期.

为此我们在我的sql表中使用当前时间戳.它显示服务器Time.But我们不知道如何根据用户时区转换时间.

因为我们没有得到用户的国家.

任何可以帮助我解决它

提前致谢 :)

cus*_*ar9 8

您无法在服务器端获取用户的时区,并且您只能在客户端进行猜测.

如果您依赖于获取用户的IP地址,那么您可以对其进行地理定位并减少时间.

通常这样做的方法是询问用户(例如他们何时注册)他们所在的时区,然后在计算时间中使用它.

  • 这也提供了一个合适的问题,通过包括两个假的时区选择来捕获垃圾邮件,因为机器人通常会选择下拉列表中的第一个或最后一个项目. (8认同)

Rob*_*bin 5

对于地理定位,您可以使用http://ipinfodb.com/,使用 API 效果很好!

function GeoLocation($precision='city',$ip,$api) {

    if($precision == "country") {
        $file = "ip_query_country.php";
    }
    else {
        $file = "ip_query.php";
    }

    $params = @file_get_contents("http://api.ipinfodb.com/v2/ip_query.php?key=".$api."&ip=".$ip."&timezone=true");
    $fields = @new SimpleXMLElement($params);
    foreach($fields as $field => $val) {
        $result[(string)$field] = (string)$val;
    }
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您决定这样做,请允许用户轻松覆盖它。我在英国工作,但我们的互联网访问是通过纽约连接的,有很多网站错误地推断出我所在的位置,并且无法纠正。 (10认同)