2016-01-21 81 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   
    );