如何通过传递国家代码或国家名称在 php 中获取时区

Vij*_*hik 3 php

我有使用某些 api 的国家/地区代码和国家/地区名称,有什么方法可以在 php.ini 中获取给定国家/地区代码和国家/地区名称的时区。我有这样的数据,

address:Object
city:"-"
continent:"Asia"
continent_code:"AS"
country:"India"
country_code:"IN"
Run Code Online (Sandbox Code Playgroud)

我正在获取这些数据,我想获取给定地址的时区,有什么方法可以在 php.ini 中执行。

提前致谢

XuD*_*ing 11

如果不想安装 PECL 库。

您可以使用 DateTimeZone:

$timezone = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode);


use*_*576 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;
}
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/function.geoip-time-zone-by-country-and-region.php

您需要下载并包含 GeoIP 库 http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip