如何从Zend Framework的Zend_Locale获取元区列表?

时间:2010-10-06 07:32:53

标签: php zend-framework timezone

我正在尝试列出UI组件的所有最常见时区。通过挖掘Zend框架,我发现supplementalData.xml(由Zend_Locale组件使用)有一个metazones列表,带有首选的TZ数据库时区名称

    <mapTimezones type="metazones">
        <mapZone other="Acre" territory="001" type="America/Rio_Branco"/>
        <mapZone other="Afghanistan" territory="001" type="Asia/Kabul"/>
        <mapZone other="Africa_Central" territory="001" type="Africa/Maputo"/>
        <mapZone other="Africa_Central" territory="BI" type="Africa/Bujumbura"/>
        <mapZone other="Africa_Central" territory="BW" type="Africa/Gaborone"/>
        <mapZone other="Africa_Central" territory="CD" type="Africa/Lubumbashi"/>
        (...)

我认为这可能非常适合我的需求,我想提取这个列表。 而不是黑客我的版本的库我想知道是否有办法通过正常方式获得此列表(似乎没有办法,这个metazones信息似乎没有在任何地方查询)。

谢谢!

2 个答案:

答案 0 :(得分:1)

我不确定你追求的是哪一个,但你最好的候选人是

$locale->getTranslationList('TerritoryToTimezone');

其中TerritoryToTimezone可以与Zend_Locale subchapter Obtaining Localized Data参考手册中描述的任何标识符交换。

如果这些都不能满足您的要求,您仍然可以use DOM to parse the XML

答案 1 :(得分:0)

您可以使用timezone_abbreviations_list(),timezone_identifiers_list()... 最后一组函数here