我在 php.ini 文件中设置了默认时区:
date.timezone = Europe/Rome
我在编辑(服务httpd重启)后也重新启动了httpd
服务,但是当我调用date_default_timezone_get()
时,它返回'UTC'值。
为什么会这样?
同时调用php_info()
会显示php.ini
PS。抱歉我的英文。
答案 0 :(得分:3)
如果您的代码(包括任何框架)确实不根本没有更改时区,并且您正在从5.1.x到5.3.x的PHP版本下运行,那么{ {1}}环境变量设置在系统的某个位置。然后,您的TZ
设置将忽略。
请参阅date.timezone
的PHP手册页(强调我的):
所有日期/时间功能使用的默认时区。 在PHP 5.4.0之前,只有在未设置TZ环境变量时才会有效。 [...]
要检查系统中是否设置了date.timezone
环境变量,可以使用
TZ
或放
if (isset($_ENV['TZ'])) {
echo 'TZ=' . $_ENV['TZ'];
}
else {
echo 'TZ not set';
}
在代码中的某处,检查输出最底部的“PHP变量”部分。
答案 1 :(得分:0)
我遇到了同样的问题。
在我的php.ini
中,时区获得了充分的信息:
date.timezone = Europe/Paris
我用php命令--ri date
检查了
php.ini
中的 timezone 得到妥善处理,因此错误不是来自ini文件。
错误来自httpd.conf
apache的文件,其中声明变量 PHPIniDir 。
我放了PHPIniDir "C:\PHP\"
您必须删除最后一个反斜杠,它会给出:
PHPIniDir "C:\PHP"
我希望这些反馈会有所帮助。
(只是精确,我的环境是:Windows 7,php 5.4.32和apache 2.2.25)