我有一个数据库,我从中提取这个日期/时间值:2018-01-19 09:50:54
我想打印自该日期起经过的小时数和分钟数,与当前服务器时间有关:
我试试这段代码:
$prev_date = "2018-01-19 09:50:54" // extracted from DB
$date_now = date("Y-m-d H:i:s"); // 24-hour date-time, matches DB format
$interval = $prev_date->diff($date_now); // I saw this on another thread
echo $interval->format('%h')." Hours ".$interval->format('%i')." Minutes";
我明白了:
致命错误:在非对象上调用成员函数diff() $ interval = .... line)
我想这是某种格式化问题,我该如何解决?
答案 0 :(得分:3)
$prev_date
不是对象。您需要转换为DateTime对象才能使用diff。此外,date()
将返回一个字符串,您必须使用DateTime对象才能使用diff
函数。
$prev_date = DateTime::createFromFormat('Y-m-d H:i:s', '2018-01-19 09:50:54');
$date_now = new DateTime(); // 24-hour date-time, matches DB format
$interval = $prev_date->diff($date_now); // I saw this on another thread
echo $interval->format('%h')." Hours ".$interval->format('%i')." Minutes";