PHP生成的时区列表不完整
我已尝试使用以下代码生成中指定的完整时区集(UTC除外):PHP生成的时区列表不完整,php,timezone,region,Php,Timezone,Region,我已尝试使用以下代码生成中指定的完整时区集(UTC除外): $zones = timezone_identifiers_list(); print_r($zones); 但是这个列表似乎跳过了50个地区,例如:太平洋/萨摩亚(与之相比) 我们做错了什么 phpinfo()显示: 编辑#2 在我的服务器上测试了这个。没问题。也许这是一个与服务器相关的问题 输出: 源代码: <?php foreach(DateTimeZone::listIdentifiers() as $zone)
$zones = timezone_identifiers_list();
print_r($zones);
但是这个列表似乎跳过了50个地区,例如:太平洋/萨摩亚(与之相比)
我们做错了什么
phpinfo()显示:
编辑#2
在我的服务器上测试了这个。没问题。也许这是一个与服务器相关的问题 输出: 源代码:
<?php
foreach(DateTimeZone::listIdentifiers() as $zone) {
echo $zone.'<br/>';
}
?>
最好的,
Christian您的时区数据库可能不是最新的 请尝试按照页面底部的链接进行操作: 时区的最新版本 数据库可以通过PECL安装
在注释后编辑:要更新您的时区数据库,因为您在Linux系统上,您可以使用
pecl
命令(我刚刚在我的Ubuntu机器上尝试过这个):
这将下载并编译新版本
然后,如果启用新的timezonedb
扩展,您的PHP应该使用最新的数据库:
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
如前所述,PHP时区数据库是一个PECL包。因为您使用的是Linux主机,所以不应该有任何问题:
pecl install timezonedb
。。。或:
pecl upgrade timezonedb
更新:
我找到了一个与CentOS特定说明的链接:
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
尝试调用时区\标识符\列表(带有\ BC的DateTimeZone::ALL\ u)。这对我很管用。(从本文中找到此解决方案:)什么操作系统和PHP版本?此外,可以在phpinfo()的输出(“日期”部分)找到正在使用的DB版本。@matt74tm-Unix
tzdata
!=PHPtimezonedb
@Álvaro@Pascal-我已经通过yum安装tzdata安装了时区数据库,版本是rpm-q的输出tzdata@matt我已经用一些额外的信息更新了我的答案;希望这些帮助:-)@Pascal-谢谢!我已经取得了一些进展:php-i | grep时区“Olson”时区数据库版本=>2011.5时区数据库=>external Alternative时区数据库=>enabled时区数据库版本=>2011.5但是,它仍然没有输出Pacific/Samoa!!嗯-不要给我萨摩亚…:)在您的服务器上还是在我的服务器上?这很重要,因为我们可以排除php环境。仅供参考:我正在这台机器上运行MacOS X 10.6.7。我做到了:pecl升级时区B;在/etc/php.ini的末尾添加了extension=timezonedb.so;重新启动apache,但outputie没有变化,我仍然没有看到太平洋/萨摩亚!
pecl install timezonedb
pecl upgrade timezonedb
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