PHP生成的时区列表不完整

|| 我尝试使用以下代码生成http://php.net/manual/en/timezones.php(除UTC以外)中指定的完整时区集:
$zones = timezone_identifiers_list();

print_r($zones);
但是此列表似乎跳过了大约50个区域,例如:Pacific / Samoa(与http://php.net/manual/en/timezones.php相比) 我们做错了什么? phpinfo()显示:
PHP Version 5.3.4
Apache Version  Apache/2.2.3 (CentOS) 

$ uname -r
2.6.18-028stab070.14
编辑#2
date
date/time support   enabled
\"Olson\" Timezone Database Version   0.system
Timezone Database   internal
Default timezone    UTC 
    
已邀请:
您的时区数据库可能不是最新的。 尝试点击“支持的时区列表”页面底部的链接:   时区的最新版本   可以通过PECL的»安装数据库   timezonedb。 在注释后进行编辑:如在Linux系统上一样,更新时区数据库,您可以使用
pecl
命令(我刚刚在Ubuntu计算机上尝试过此命令):
pecl upgrade timezonedb
这将下载新版本并进行编译。 然后,如果启用新的
timezonedb
扩展名,则您的PHP应该使用uptodate数据库:
php -dextension=timezonedb.so -i | grep Timezone
\"Olson\" Timezone Database Version => 2011.5
Timezone Database => external
Alternative Timezone Database => enabled
Timezone Database Version => 2011.5
如果我尝试不启用该新扩展名,则会得到与您以前相同的东西:
php -i | grep Timezone
\"Olson\" Timezone Database Version => 0.system
Timezone Database => internal
    
在我的服务器上进行了测试。没问题也许这是服务器相关的问题? 输出:timezones.php 源代码:
<?php

foreach(DateTimeZone::listIdentifiers() as $zone) {

    echo $zone.\'<br/>\';

}   

?>
最好, 基督教     
正如Pascal MARTIN指出的那样,PHP时区数据库是PECL软件包。由于您使用的是Linux主机,因此不会有任何问题:
pecl install timezonedb
... 要么:
pecl upgrade timezonedb
更新: 我找到了CentOS特定说明的链接: http://www.electrictoolbox.com/correct-php-timezone/ 您还可以进行搜索:
C:\\>pecl search timezonedb
Retrieving data...0%
MATCHED PACKAGES, CHANNEL PECL.PHP.NET:
=======================================
PACKAGE    STABLE/(LATEST) LOCAL
timezonedb 2011.5 (stable)       Timezone Database to be used with PHP\'s date and time functions
    
尝试调用timezone_identifiers_list(DateTimeZone :: ALL_WITH_BC)。那对我有用。 (从这篇文章中找到了这个解决方案:https://stackoverflow.com/a/5873059/323330)     

要回复问题请先登录注册