2016-01-17 50 views
2

我已經創建了一個博客並設置了它,以便在每個博客文章中顯示該博文的發佈日期,我總是使用stroftime()並獲取記錄來自存儲帖子的MySQL數據庫的日期。stroftime代碼不會在新的web服務器上顯示日期

這一直工作,但我剛剛換了新的虛擬主機,當我嘗試使用原來的代碼:

<?php $date = strtotime($post['post_date']); 
     echo date('F jS, Y', $date); ?> 

我得到一個錯誤,指出:

Warning: 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 the timezone 'UTC' for now, but please set date.timezone to select your timezone. 

我米只是不明白他們希望我用date_default_timezone_set()替換。

回答

1

Php預計默認時區由應用程序而不是由系統設置。因此,您必須在腳本的開始或初始化的一部分中調用date_default_timezone_set sonewhere。然後你可以安全地調用strtotime。

date_default_timezone_set('UTC') 
... 
strtotime (...) 
1

你可以在php.ini文件中配置它,如:

date.timezone = "US/Central" // US/Central is your default timezone 
1

基本上你需要調用的函數date_default_timezone_set($timezone)某處你的代碼中調用任何日期時間函數之前。你應該總是看看這個php文檔頁面。

您需要在您的代碼中使用正確的時區來調用此位置,然後調用您的代碼。 YOu會在php文檔中找到時區的列表website here

例如對於我所有的代碼。

date_default_timezone_set('Europe/Dublin'); 

strtotime ('yesterday 12:30 pm'); 

此只需要在你的代碼做一次,所以你可以把它放在一個配置文件,或者是由所有的腳本加載的東西。

相關問題