繁体   English   中英

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

[英]How to get time zone in php by passing country code or country name

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

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

我得到这个数据,我想得到给定地址的时区,有没有办法在PHP。

提前致谢

如果您不想安装PECL库。

您可以使用DateTimeZone:

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

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

如果您只有国家/地区名称信息,则可能无法反向查找所有时区。

例如,美国有5个不同的时区。 这是一对多的关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM