在Zend Framework或默认的PHP中,是否有一种将国家(使用国家代码)映射到时区列表的方法?例如,我正在尝试复制Google搜索“澳大利亚现在时间”,它显示该国所有时区和城市的功能。
在Zend Framework或默认的PHP中,是否有一种将国家(使用国家代码)映射到时区列表的方法?例如,我正在尝试复制Google搜索“澳大利亚现在时间”,它显示该国所有时区和城市的功能。
我不确定Zend_Date,但是从PHP5.3开始,原生的PHP就可以通过DateTimeZone::listIdentifiers
方法实现。
示例:
print_r( DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, 'US') );
输出:
Array
(
[0] => America/Adak
[1] => America/Anchorage
[2] => America/Boise
[3] => America/Chicago
[4] => America/Denver
[5] => America/Detroit
[6] => America/Indiana/Indianapolis
[7] => America/Indiana/Knox
[8] => America/Indiana/Marengo
[9] => America/Indiana/Petersburg
[10] => America/Indiana/Tell_City
[11] => America/Indiana/Vevay
[12] => America/Indiana/Vincennes
[13] => America/Indiana/Winamac
[14] => America/Juneau
[15] => America/Kentucky/Louisville
[16] => America/Kentucky/Monticello
[17] => America/Los_Angeles
[18] => America/Menominee
[19] => America/New_York
[20] => America/Nome
[21] => America/North_Dakota/Center
[22] => America/North_Dakota/New_Salem
[23] => America/Phoenix
[24] => America/Shiprock
[25] => America/Yakutat
[26] => Pacific/Honolulu
)
请注意,国家必须以两个字母的ISO 3166-1兼容国家代码提供。显然,这意味着“us”与“US”不同(至少我在那种情况下没有结果)。