2011-04-20 27 views
2

嘿所有 - 我讓我的CMS網站上有錯誤,其中顯示的:)的strtotime(:date.timezone問題

警告這是不是安全的依靠系統的時區設置。您需要需要才能使用date.timezone設置或date_default_timezone_set()函數。如果您使用這些方法中的任何一種,並且仍然收到此警告,則很可能是拼寫錯誤的時區標識符。我們在第97行的/var/www/html/test-site/libs/utils.php中選擇了'UTC/0.0/no DST'。

因此,我進入該文件夾並放置這之前的任何功能:

date.timezone = "America/New_York"; 

但是,當我嘗試重新加載我的網頁整個網站已關閉。任何人都知道我在做什麼錯了?謝謝

+0

你所做的是將一個php.ini指令放入你的PHP代碼中,而這些指令本身並不是有效的PHP代碼,所以你引入了一個語法錯誤。 – 2011-04-20 19:19:43

+0

當您將此行放入'php.ini'中時,請同意@Marc +不要在'and'行使用';'。 – Wh1T3h4Ck5 2011-04-20 19:57:26

回答

7

您可以選擇忽略警告(在大多數情況下是罰款),或明確設置使用date_default_timezone_set的時區。

date.timezone = "America/New_York";是不正確的PHP,反正。

+0

只要刪除分號,它應該工作。 – Ray 2011-12-21 18:19:31

1

啊!我發現:

date_default_timezone_set('America/New_York'); 

的伎倆

+0

不,不,不會,但是這樣做並不是最好的方法,你應該改變你的'php.ini'文件中的data.timezone,然後重新啓動apache或你使用的任何服務器! – RobertPitt 2011-04-20 19:17:42

+1

@羅伯特 - 我不同意。即使你在'php.ini'中設置了'default.timezone',PHP也會在執行每個日期/時間函數之前嘗試'猜測'時區。是的,最好在'php.ini'中設置'date.timezone',但建議再次從php代碼中設置它。即使'date_default_timezone_set(date_default_timezone_get());'也是有道理的。看看[這個問題並接受答案](http://stackoverflow.com/questions/5556789/why-date-works-twice-as-fast-if-we-set-time-zone-from-code)。所以我同意@Sapp,這是避免PHP'猜測'時區設置的最好方法。 @Sepp +1 – Wh1T3h4Ck5 2011-04-20 19:45:46

+0

對不起,我在之前的評論中提供了'date.timezone'。 – Wh1T3h4Ck5 2011-04-20 19:58:35