gpt4 book ai didi

javascript - PHP 中的用户时区问题修复

转载 作者:行者123 更新时间:2023-12-02 16:37:57 25 4
gpt4 key购买 nike

我正在开发一个 php 应用程序,其中我需要检测用户 timzone(从他们访问应用程序的位置)。我尝试过使用 JavaScript 时区检测方法,如果用户更改了时区或机器时间,我将面临什么问题,这会影响我的计算。

我想避免对系统时间的依赖。请就任何替代方法提出建议。

谢谢。

最佳答案

我在使用 IP2Location 中的 DB11 数据库之前已经完成了此操作,该数据库将允许您根据用户的 IP 地址查找用户时区。他们有一个免费版本,您可以使用它进行测试,但它不如付费版本准确。您可以从https://lite.ip2location.com/database-ip-country-region-city-latitude-longitude-zipcode-timezone下载它包括该页面上的说明,用于根据您使用的数据库类型进行设置。

假设您正在使用 MySQL 和 php,这里有一些示例代码可以帮助您在设置数据库后开始使用。至少您必须将 $ServerName、$DbLogin 和 $DbPassword 变量更改为您自己的设置才能正确连接到数据库:

<?
/* function to convert ip address in x.x.x.x format to integer/long for use with the ip2location database */

function convertIpToLong($ip) {
return sprintf("%u", ip2long($ip));
}

$ServerName = "localhost"; // change to real mysql ip
$DatabaseName = "ip2location";
$DbLogin = "root"; // change to a db user that has read permission to your new database
$DbPassword = "password"; // change to your db user password

$link = mysqli_connect($ServerName, $DbLogin, $DbPassword);

// connect to database

mysqli_select_db($link, $DatabaseName)
or die("Could not select database");

$ipAddress = convertIpToLong('8.8.8.8'); // change to real ip address here
$query = "SELECT * FROM ip2location_db11 WHERE ".$ipAddress." >= ip_from AND ".$ipAddress." <= ip_to;";

// test if the ip address is matched to one in the database

if (mysqli_multi_query($link, $query)) {
$result = mysqli_store_result($link); // found a match
}
else {
die("Query failed : " . mysqli_error($link));
}

$row = mysqli_fetch_array($result); // load results into row variable
mysqli_free_result($result); // clear resultset

// write each column to the screen

foreach ($row as $key => $val) {
echo $key." = ".$val."<br />";
}
?>

关于javascript - PHP 中的用户时区问题修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27752054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com