由于最近更改俄罗斯时区的法律,我在为我的 phpbb 论坛更新时区时遇到了麻烦。由于我更像是一个 php 程序员而不是一个 nix 管理员,所以这一切对我来说有点痛苦,所以任何建议都非常感谢。
长话短说,执行 shell 命令 'date' 返回:
Fri Nov 23 11:20:39 MSK 2012
这很好。
但是,在 PHP 中, date('Ymd H:i:s',time()) 返回:
2012-11-23 10:20:39
这太早了一个小时。
PHP date_default_timezone_get() 返回:
Europe/Moscow
我认为 PHP 有它自己的(过时的)时区数据库,所以我继续执行:
pecl install timezonedb
相应地修改了 php.ini(将路径添加到 timezonedb.so),重新启动服务器并检查
php --ri timezonedb
它反应很好
Alternative Timezone Database => enabled
Timezone Database Version => 2012.10
但是时间问题根本没有解决,当我问 phpinfo() 时,它会响应:
date
date/time support enabled
"Olson" Timezone Database Version 2010.9
Timezone Database internal
Default timezone Europe/Moscow
所以命令行说timezonedb版本是2012.10,但是PHP还是用2012.9?我完全不明白 =(