2011-09-13 49 views
0

我有這種錯誤如何解決以下聰明的錯誤? (或php 5.3.8)

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /var/www/html/includes/functions.php on line 1444 

和此錯誤

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /var/www/html/includes/templatelib/plugins/modifier.date_format.php on line 37 

和此錯誤

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /var/www/html/includes/functions.php on line 3538 

我已閱讀,第一是由引起最新的PHP版本,但其他2個是smary錯誤

我在durpal上看到論壇上,類似的錯誤,以一日一和修復是編輯的php.ini

和修復是添加像date.timezone = "America/New_York"一個時區,不爲我工作

編輯

好吧,所有人都同意1解決方案,我應該編輯我的源代碼,應該改變php.ini中的任何內容?因爲到目前爲止,我一直在試圖從php.ini的修正並沒有奏效

固定它

我不得不改變我的VPS時區

ln -sf /usr/share/zoneinfo/GMT /etc/localtime 

,做同樣的與php.ini中,我也忘了重新啓動Apache笑:d

+0

編輯* correct * php.ini文件意味着您不需要編輯每個運行的php腳本。它沒有工作的事實很可能意味着你一直在編輯錯誤的文件。檢查phpinfo()的輸出並確保它正在加載正確的文件。 –

+0

@Blair McMillan根據php info文件,我只有1個php.ini文件位於/ etc/php。ini – Lynob

回答

2

將這個如果你不想在使用date_default_timezone_set在你的腳本開始之前,你應該確保PHP實際上正確地加載了這個配置選項。檢查phpinfo()的輸出。另一個潛在的問題:我不知道你的主機設置,但我有不同配置的多個PHP ini文件,有時我編輯錯誤的。方便phpinfo();還會告訴你它使用的是什麼.ini文件,因此你可以仔細檢查。

也就是說,其他人提出的date_default_timezone_set選項幾乎可以保證工作。

+0

我看到了與Joomla相同的問題(不知道他們是否使用smarty作爲模板引擎),但設置在php.ini中的默認值修復了它。如果您有權訪問php.ini,我會建議您設置一個默認值,對應於服務器所在的時區,如@EPB所建議的。 – F21

+0

請閱讀我的編輯先生 – Lynob

+0

啊,我明白了,我甚至沒有想過這件事。 php.ini作爲Apache模塊更新到PHP將需要重新啓動嗎?我很習慣CGI,它甚至沒有跨過我的腦海,對此抱歉!很高興你修好了它。 – EPB

2

你試過

date_default_timezone_set('Europe/London');

在您的PHP腳本的開始? (改變「歐洲/倫敦,無論你是當然!)

+0

你可能會發現它也修復了你的Smarty錯誤 – JoLoCo

+0

請閱讀我的編輯sir – Lynob

1

嘗試:

在第一線

date_default_timezone_set("America/New_York"); 
+0

請閱讀我的編輯sir – Lynob