PHP日志文件时区

时间:2013-04-07 06:06:08

标签: php timestamp-with-timezone

我正在玩FengOffice项目,我是PHP的初学者。 我想将日志从格林威治标准时间改为香港时间。 但即使我设置

[Date]
date.timezone = "Asia/Hong_Kong"

[Date]
date.timezone = Asia/Hong_Kong

PHP日志仍显示GMT时间,应用程序日志也是如此。

我也尝试在代码中更改时区:

ini_set('date.timezone', 'Asia/Hong_Kong');
if(function_exists('date_default_timezone_set')) {
    date_default_timezone_set('Asia/Hong_Kong');
} else {
    putenv('TZ=Asia/Hong_Kong');
} 

但没有任何作用。任何人都可以帮忙吗?非常感谢。

3 个答案:

答案 0 :(得分:3)

根据PHP Bug 60723,它已在2012年10月修复,应该在PHP v5.3.18和v5.4.8中提供。

答案 1 :(得分:1)

日志文件不是由PHP编写的,而是由syslog

编写的

此前已将此报告为错误:https://bugs.php.net/bug.php?id=45191

  

这很正常。错误日志不是由PHP 编写,而是由syslog编写。 Syslog不关心PHP的内部时区,因此根据系统时区格式化日志消息。如果系统时区不正确,请更改系统时区。

PHP的开发人员是否收到了响应。要更改日志的时区,您必须更改系统时间。 ^^

答案 2 :(得分:-1)

<?php
date_default_timezone_set('America/Los_Angeles');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){
    echo 'Script timezone differs from ini-set timezone.';
} else {
    echo 'Script timezone and ini-set timezone match.';
}
?>

而不是这样做