例如,
我有一个来自美国的IP地址。
我正在使用这个功能:
$timeZone = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "US");
以获取位置
我得到一个数组:
0 => string 'America/Adak'
1 => string 'America/Anchorage'
2 => string 'America/Boise'
我如何从IP地址中知道我需要的位置?
谢谢,
不幸的是,没有简单的方法可以通过ip地址来计算时区,尤其是如果您使用共享主机。
但是,如果你能安装GeoIP扩展,你可以让它像这样工作:
$region = geoip_region_by_name($_SERVER['REMOTE_ADDR']);
$timezone = geoip_time_zone_by_country_and_region($region['country_code'], $region['region']);
阅读更多关于:
- geoap_time_zone_by_country_and_region
- 地理区域名称