默认欧洲时区在php.ini中设置,但date_default_timezone_get()返回'UTC'

And*_*s7X 10 php timezone date

我在php.ini文件中设置了默认时区:

date.timezone = Europe/Rome
Run Code Online (Sandbox Code Playgroud)

httpd在编辑(服务httpd重启)后也重新启动了服务,但是当我调用时date_default_timezone_get(),它返回'UTC'值.

为什么会这样?

同时调用php_info()显示设置的时区php.ini

PS.对不起我的英语不好.

Jür*_*len 3

如果您的代码(包括任何框架)确实根本没有更改时区,并且您正在运行从 5.1.x 到 5.3.x 的 PHP 版本,则环境TZ变量可能设置在您的系统。那么你的date.timezone设置将被忽略

\n\n

请参阅 PHP 手册页date.timezone(强调我的):

\n\n
\n

所有日期/时间函数使用的默认时区。在 PHP 5.4.0 之前,只有在未设置 TZ 环境变量的情况下这才有效。[\xe2\x80\xa6]

\n
\n\n

TZ要检查系统中是否设置了环境变量,您可以使用

\n\n
if (isset($_ENV[\'TZ\'])) {\n    echo \'TZ=\' . $_ENV[\'TZ\'];\n}\nelse {\n    echo \'TZ not set\';\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

或放

\n\n
phpinfo();\n
Run Code Online (Sandbox Code Playgroud)\n\n

在代码中的某个位置并检查其输出最底部的“PHP 变量”部分。

\n