在Zend Framework或默认PHP中是否有办法将国家/地区(使用国家/地区代码)映射到时区列表?作为一个例子,我正在尝试在搜索“现在在澳大利亚的时间”时复制Google功能,该时间显示该国家/地区的所有时区和城市。
答案 0 :(得分:10)
不确定Zend_Date,但本机PHP可以使用
从PHP5.3开始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兼容国家/地区代码。显然,这意味着“我们”与“美国”不同(至少我当时没有得到结果)。