php无法解析时间字符串

时间:2016-05-17 10:11:04

标签: php

我希望db中的日期与当前日期之间有区别

那是我的代码:

 $current_date = new \DateTime(date('Y-m-d H:i:s'));
    foreach ($notifs as $notif) {
        $created_notif = new \DateTime($notif->created);
        $diff = date_diff($current_date, $created_notif);
                if ($diff->y > 0) {
                    $notif->time = $diff->y . " year";
}
//..
}

这是我得到的错误:

  

DateTime :: __ construct():无法解析时间字符串(2016年5月17日   08:54)在0(1)位置:

并且不要说我没有搜索过DateTime::createFromFormat

有些事情是这样的:

$format = 'Y-m-d H:i:s';
            $current_date = new \DateTime(date($format));
            foreach ($notifs as $notif) {
                $created_notif =\DateTime::createFromFormat($format,$notif->created);
                $diff = date_diff($current_date, $created_notif);//line 32
 debug($created_notif);//line 33
                die();

这就是我得到的:

  

警告(2):date_diff()期望参数2为DateTimeInterface,   布尔给定[APP / Controller \ AdminController.php,第32行]

     

\ src \ Controller \ AdminController.php(第33行)

     

我需要你的帮助

1 个答案:

答案 0 :(得分:5)

我认为,$notif->created17/05/2016 08:54所以此时你应该使用

$created_notif = \DateTime::createFromFormat('d/m/Y H:i', $notif->created);

这就是为什么你没有得到DateTime对象的原因,这就是为什么date_diff不起作用的原因。