<?
foreach ($results as $data) {
$date = $data->created;
$now = new DateTime();
echo $date->diff($now)->format(" %y years,%d days, %h hours and %i minuts");
?>
我使用此代码从mysql表中获取日期并将其打印在codeigniter框架视图文件中。我的mysql日期类型是&#34; timestamp&#34;。那么请你帮我打开今天和mysql表中提取日期之间的区别。 错误消息 - 在字符串上调用成员函数diff() - 并在使用此代码后得到此消息
答案 0 :(得分:2)
您必须将created
值转换为DateTime。数据库中的时间戳值类似于"2018-02-02 05:08:32"
。 DateTime
的构造函数可以转换它。因此,您只需使用new DateTime()
包装您的值:
$date = new DateTime($data->created);
$now = new DateTime();
echo $date->diff($now)->format(" %y years,%d days, %h hours and %i minuts");
答案 1 :(得分:0)
您需要先将时间戳转换为DateTime对象,然后才能进行diff:
$date = new DateTime();
$date->setTimestamp($data->created);