对于我的数据库时间,我有以下内容:
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天”格式显示时间。
我如何实现这一目标?
答案 0 :(得分:1)
原因是PHP不支持Canda/Mountain
时区。
有关支持的时区列表,请参阅reference。
答案 1 :(得分: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。
答案 2 :(得分:1)
您需要两个修复程序。首先是时区,因为您使用的是无效区域。首选时区可能是加拿大/萨斯喀彻温省。 (通过查看支持的区域列表here)
,根据您的区域进行更改其次,您使用的是无效的MySQL日期格式。最后,您的代码应如下所示:
date_default_timezone_set('Canada/Saskatchewan');
$comment_date = date('Y-m-d H:i:s', time());
$data = array(
'comment_date' => $comment_date
);