PHP/Zend Framework中的国家时区处理

5

在Zend Framework或默认的PHP中,是否有一种将国家(使用国家代码)映射到时区列表的方法?例如,我正在尝试复制Google搜索“澳大利亚现在时间”,它显示该国所有时区和城市的功能。


这个能帮到你吗?http://zendframework.com/manual/en/zend.locale.date.datesandtimes.html#zend.locale.date.normalize - chelmertz
1个回答

10

我不确定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”不同(至少我在那种情况下没有结果)。


有任何想法如何在 PHP 5.2 上进行吗? - flakerimi
1
@Flakerim 不好意思,但是你为什么还在使用5.2呢?它已经到了生命周期支持的尽头。赶紧更新吧 :) - Gordon
没错,你说得对,但我们需要先升级我们的IT :). 谢谢回答。 - flakerimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接