2016-05-17 27 views
1

我想在數據庫的日期和當前日期PHP無法解析的時間字符串

這是我的代碼之間的區別:

$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 :: __構建體():未能在位置0解析時間字符串(17/05/2016 八點五十四)(1):

而對於不說,我還沒有搜查我tiried 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行)

請我需要你的幫助

+0

爲什麼** \\ **作爲'DateTime'的前綴? –

+0

@FrayneKonok - 命名空間 –

+0

如果我不使用它,他不知道它 –

回答

5

我認爲,在$notif->created17/05/2016 08:54所以在這一點上,你應該使用

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

這是爲什麼你沒有得到DateTime對象,這就是爲什麼date_diff不起作用。

+0

我得到了同樣的錯誤 –

+0

'var_dump($ created_notif)'它應該是'false'。 – vaso123

+0

我改變了你說的格式d/m/Y H:我和我有同樣的錯誤 –