我想以国家/地区为基础显示GMT Time。如果假设某个来自印度的用户注册到我的应用程序中,我应该将GMT时间作为GMT +5附加到我的数据库中。如果假设,来自法国的其他一些用户注册到我的应用程序中,我应该将GMT时间作为GMT +1附加到我的数据库中。
答案 0 :(得分:1)
如果您想在PHP中执行此操作,则需要进行地理定位。有两种方式:自制方式或API方式。根据您希望的分辨率,情况可能会有所不同。请记住,不会神奇地检测代理。权衡取决于效率和内务管理。
选择地理位置数据库并查询其IP子集,该子集将为您提供国家/地区。保留国家/地区的时区列表。这是一种痛苦,这就是为什么我不打算为它提供代码。
这个是微不足道的:
<?php
$geoloc = file_get_contents("http://api.ipinfodb.com/v3/ip-city/?format=json&key=<API KEY>&ip=".$_SERVER['REMOTE_ADDR']);
if ($geoloc && ($r = json_decode($geoloc)) !== false) {
// Your timezone is in $r->timeZone in the format "+/-i:ii"
}
?>
你需要一个ipinfodb的API密钥,你可以从这个地址获得:http://ipinfodb.com/register.php
答案 1 :(得分:0)
有时候,没有server-based/PHP
方法来获取当地时间。
您必须通过Javascript
从客户端获取。 Google bitbucket timezone detect
并使用它设置local_timezone
Cookie,您可以从PHP中读取并通过date_default_timezone_set()
设置
//get the client ip and assign it to variable
$IP=$_SERVER['REMOTE_ADDR'];
//if you using localhost you can check using follow variable
//$IP = '202.71.158.30';
//pass the ip as a parameter for follow URL it will return the country
$country = file_get_contents('http://api.hostip.info/country.php?ip='.$IP);
//show the country
echo $country
此外,这里有一个链接,可以帮助您获得GTM时区......
How do I get Greenwich Mean Time in PHP?
你需要实现自己的逻辑,例如,获取客户的时间并从GTM-0中扣除它,你会得到的将是GTM(小时)..希望你得到我想说的话.. < / p>
希望它有所帮助。