2012-10-05 18 views
0

我已經安裝了CakePHP的1.3,它使用下面的幾個小時:
Apache的版本:2.2.21
PHP版本:5.3.8
的MySQL版本:5.5.16。
的問題是,當我贊同以下CakePHP的date.timezone的背後是

echo date('l jS \of F Y h:i:s A');
我得到的時間了幾個小時比我的本地時間回(本機時間設置爲我的國家時,其澳大利亞)。
當我在php.ini文件中進行更改並設置date.timezone = UTC + 10時,我獲得了正確的本地時間,但我也收到了很多警告。

警告:strtotime()[function.strtotime]:依靠系統的時區設置是不安全的。您需要需要才能使用date.timezone設置或date_default_timezone_set()函數。如果您使用這些方法中的任何一種,並且仍然收到此警告,則很可能是拼寫錯誤的時區標識符。我們選擇了 '澳大利亞/墨爾本' 的'10 0.0 /沒有DST」,而不是在C:\ WAMP \ WWW \ CakePHP的\ LIB \蛋糕\緩存\ Cache.php上線515

請幫助謝謝

+0

檢查'config/core.php' ... – deceze

+0

我檢查了core.php文件,發現什麼都沒有 –

+0

...我不想禁用警告。 –

回答

2

正如您在文章中提到的,您不能指定時區到UTC的偏移量,如「UTC + 10」。您必須使用其中一個有效的時區字符串。選擇你的大陸here,你將得到有效的時區字符串列表。

因此,例如。在core.php你必須這樣做:

date_default_timezone_set("Australia/Melbourne"); 

改變時區字符串爲你喜歡的任何其他有效的時區字符串。順便說一句CakeTime :: listTimezones()也會給你時區的列表。

編輯:您可以指定時區作爲偏移到UTC,但不應該。

+0

感謝ADmad它工作正常,真的很感謝你的幫助 –

1

如果你在應用程序獲取時區相關的錯誤從PHP取消註釋一行 /配置/ core.php中:

<?php 
/** 
* Uncomment this line and correct your server timezone to fix 
* any date & time related errors. 
*/ 
    date_default_timezone_set('UTC'); 

http://book.cakephp.org/2.0/en/installation.html#fire-it-up

+0

我已取消註釋該行。但我仍然有同樣的問題。日期是2012年5月10日,這是可以的,但時間是10小時後(我的電腦時間是下午3點43分),回聲時間是上午5點43分。謝謝 –

+0

因此,請改變時區「UTC」以符合您當地的時區。 – ADmad

+0

ADmad,正如我上面提到的,當我將它從UTC更改爲AEST或AEDT時,它可以正常工作,但我得到很多警告(請參見上面) –