我使用一些api有国家代码和国家/地区名称,有没有办法在php中获取给定国家/地区代码和国家/地区名称的时区。我有这样的数据,
address:Object
city:"-"
continent:"Asia"
continent_code:"AS"
country:"India"
country_code:"IN"
我收到这些数据,我想获得给定地址的时区,有没有办法在php中。
提前致谢
答案 0 :(得分:3)
如果您不想安装PECL库。
您可以使用DateTimeZone:
$timezone = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode);
答案 1 :(得分:0)
PHP有一个使用GeoIP的功能。
geoip_time_zone_by_country_and_region()
函数将返回与国家和地区代码组合相对应的时区。
$timezone = geoip_time_zone_by_country_and_region('CA', 'QC');
if ($timezone) {
echo 'Time zone for CA/QC is: ' . $timezone;
}
http://php.net/manual/en/function.geoip-time-zone-by-country-and-region.php
您需要下载并包含GeoIP库 http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip
答案 2 :(得分:0)
如果您只有国家/地区名称信息,则可能无法反向查找所有时区。
例如,美国有5个不同的时区。这是一对多的关系。