我需要从mysql数据库中获取日期并打印今天和获取日期之间的差异

时间:2018-02-07 13:41:53

标签: php mysql codeigniter date

<?
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() - 并在使用此代码后得到此消息

2 个答案:

答案 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);