php – 如何在美国通过IP地址获取时区?

在例子中,

我有来自美国的IP地址.

我正在使用这个功能:

$timeZone = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "US");

获得位置.
我得到一个数组:

0 => string 'America/Adak'   
1 => string 'America/Anchorage'  
2 => string 'America/Boise'   

我如何从IP地址知道我需要的位置是什么?

谢谢,

最佳答案 不幸的是,没有简单的方法来通过ip地址来计算时区,特别是如果你使用共享主机.

但是,如果你可以安装GeoIP extension,你可以让它像这样工作:

$region = geoip_region_by_name($_SERVER['REMOTE_ADDR']);
$timezone = geoip_time_zone_by_country_and_region($region['country_code'], $region['region']);

了解更多:

> geoip_time_zone_by_country_and_region
> geoip_region_by_name

点赞