如何通过传递国家代码或国家/地区名称来获取PHP中的时区

时间:2015-08-11 13:19:47

标签: php

我使用一些api有国家代码和国家/地区名称,有没有办法在php中获取给定国家/地区代码和国家/地区名称的时区。我有这样的数据,

address:Object
city:"-"
continent:"Asia"
continent_code:"AS"
country:"India"
country_code:"IN"

我收到这些数据,我想获得给定地址的时区,有没有办法在php中。

提前致谢

3 个答案:

答案 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个不同的时区。这是一对多的关系。