【问题标题】:PHP error_log not respecting the timezone setting?PHP error_log 不尊重时区设置?
【发布时间】:2026-02-13 23:20:03
【问题描述】:

error_log 中的时区问题?

如果我在 php 中将 error_log 指令显式设置为文件,然后将 error_log 语句与时区一起使用,那么为什么它不尊重我的时区?见下文:

[soham@soham.dev ~]$ cat errlog.php
<?php

date_default_timezone_set('America/Los_Angeles');
ini_set('error_log', '/tmp/blah');
ini_set('display_errors', 'on');
error_log('whatever');
?>

[soham@soham.dev ~]$ php errlog.php

[soham@soham.dev ~]$ cat /tmp/blah
[12-Aug-2010 02:16:29] whatever

[soham@soham.dev ~]$ date
Wed Aug 11 19:16:34 PDT 2010

[soham@soham.dev ~]$

我能找到的最接近的是http://bugs.php.net/45191,但它在 5.2.10 中已修复。但我正在运行 5.2.11:

[soham@soham.dev ~]$ php -v
PHP 5.2.11 (cli) (built: Apr 17 2010 16:25:19)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
[soham@soham.dev ~]$

相关的 INI 设置(在代码中被覆盖):

[soham@soham.dev ~]$ php -i | grep date.timezone
date.timezone => America/Los_Angeles => America/Los_Angeles

[soham@soham.dev ~]$ php -i | grep error_log
error_log => no value => no value

我错过了什么?任何线索表示赞赏。谢谢。

【问题讨论】:

    标签: php timezone error-log


    【解决方案1】:

    升级到 php5.3.3 解决了这个问题。尚未尝试过中间版本(即 5.2.11 和 5.3.3 之间)。

    【讨论】:

    • 我正在使用带有 PHP 5.4.7 的 XAMPP 并遇到此问题。不知道从哪里开始参考。