2013-04-07 40 views
1

我在玩FengOffice項目,我是一個初學PHP的人。 我想將日誌從GMT更改爲香港時間。 但是,即使當我設置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'); 
} 

但沒有任何工程。任何人都可以幫忙嗎?非常感謝。

回答

1

日誌文件不是由PHP編寫的,而他們是由syslog

此之前已經報道如下錯誤寫:https://bugs.php.net/bug.php?id=45191

這是正常的。錯誤日誌不是由PHP編寫的,而是由syslog編寫。 Syslog不關心PHP的內部時區,因此根據系統時區格式化日誌消息。只要更改系統時區,如果它不正確。

是由PHP開發人員收到的響應。要更改日誌中的時區,您必須更改系統時間。 ^^

0
<?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.'; 
} 
?> 

,而不是這樣做,這樣做

+0

而這會影響日誌文件如何? – Jon 2013-04-07 06:11:38

3

PHP Bug 60723,它是固定在2012年10月,應該是在PHP v5.3.18和v5.4.8可用。

+0

確認。我剛從5.3.10升級到5.3.24,問題就消失了。當PHP將時區添加到每個日誌條目時,似乎引入了該錯誤。它的目的是顯示正確的時區,但顯示每個條目的UTC。現在,顯示正確的TZ。 – Cameron 2013-05-01 19:28:08