2016-01-21 84 views
0

對於我的數據庫的時候,我有以下幾點:數據庫時間格式變化

date_default_timezone_set('Canada/Mountain'); 
$comment_date = date('m/d/Y h:i:s a', time()); 

$data = array(       
     'comment_date' => $comment_date   
    ); 

但我正在逐漸0000-00-00 00:00:00的結果。

我試圖以「1分鐘」或「20小時」或「4天」格式顯示時間。

我該如何做到這一點?

回答

1

看起來你可能正在使用MySQL。假設此,改變

$comment_date = date('m/d/Y h:i:s a', time());

$comment_date = date('Y-m-d h:i:s');

,它應該保持正確的日期,當您將它保存到數據庫中。原因是MySQL期望後者格式的日期時間。我不確定你的意思是I am trying to show the time in "1 min" or "20 hr" or "4 days" format。您可以使用MySQL DATE_FORMAT()函數格式化從數據庫中提取日期的日期。有關如何執行此操作的詳細信息,請參閱http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format

1

原因是PHP不支持Canda/Mountain時區。

有關支持的時區的列表,請參閱reference

1

您需要兩個修復程序。首先是時區,因爲您使用的是無效的時區。首選的時區可能是加拿大/薩斯喀徹溫省。

其次,你正在使用的MySQL無效的日期格式(通過查看支持的區域here的列表,根據您的區域,改變它)。最後,你的代碼應該是這樣的:

date_default_timezone_set('Canada/Saskatchewan'); 
$comment_date = date('Y-m-d H:i:s', time()); 

$data = array(       
     'comment_date' => $comment_date   
    );