2016-02-16 69 views
1

我有以下的測試代碼:@date_default_timezone_get()默默崩潰

<html> 
<body> 
    <p> 
      Hi 
    </p> 
    <?php 
      if (function_exists('date_default_timezone_get')) { 
        echo "J"; 
        $timezone = @date_default_timezone_get(); 
        echo "K"; 
        date_default_timezone_set($timezone); 
        echo "L"; 
      } 
      phpinfo(); 
    ?> 
</body> 
</html> 

當我找回它通過我的工作顯然阿帕奇我得到的只是:

<html> 
<body> 
    <p> 
     Hi 
    </p> 
    J 

如果我註釋掉「$ timezone = @date_default_timezone_get();'然後我得到一個響應,其中沒有定義'$ timezone',然後是標準phpinfo()輸出。

到目前爲止,我發現的所有調試選項都不會在任何日誌中顯示我感興趣的任何內容。

使用PHP在命令行上運行腳本也不會出錯。

供參考:這是我試圖找出爲什麼我的websvn突然停止工作,我已經縮小了失敗這一行,並在示例代碼中失敗,所以我感覺相當好,除了爲什麼它只是不會工作。

回答

1

爲什麼在函數調用之前保留@?它抑制了可能有所幫助的錯誤輸出。

此外,你使用什麼PHP版本? DateTime函數僅在5.2.0之後默認啓用。

我也不排除即使date_default_timezone_get()函數存在的可能性,它不是PHP自帶的標準函數,而是定製的東西。

+0

哈哈,顯然我不是一個PHP的開發。刪除@會很有用:) – LovesTha

0

完全websvn註釋掉的電話後,我從另一條線得到了一個新的錯誤:

時區數據庫損壞 - 這不應該發生!

此錯誤導致我調查什麼是錯我的時區信息,顯然所有的文件在/ usr/share/zoneinfo中/有640個權限,其更改爲644和錯誤都沒有了。

相關問題