2016-08-04 23 views
1

我想在secounds日期和這裏之間的時間是我的代碼:壞差異

$rezultat = $polaczenie->query(sprintf("SELECT terminstart FROM uzytkownicy WHERE id=%d", $_SESSION['id'])); 
$wiersz = $rezultat->fetch_assoc(); 

$start = DateTime::createFromFormat('Y-m-d H:i:s', $wiersz['terminstart'])->format('Y-m-d H:i:s'); 
echo'<script>alert("'.$start.'");</script>'; 

$teraz = (new \DateTime())->format('Y-m-d H:i:s'); 
echo'<script>alert("'.$teraz.'");</script>'; 

$interval = $start->diff($teraz); 
echo'<script>alert("'.$interval.'");</script>'; 

我從警報看到,$開始工作良好,$ teraz(手段現在)運行良好,但我甚至沒有得到差異的第三個錯誤。問題是什麼?

回答

5

$start$teraz是字符串,而不是DateTime對象,因爲您對它們調用了DateTime::format()。您只能對DateTime對象執行差異。

$start = new DateTime($wiersz['terminstart']); 
$teraz = new \DateTime(); 
$interval = $start->diff($teraz); 

另外:

  1. 不要使用JavaScript調試。這有點瘋了。
  2. 你不需要DateTime::createFromFormat()如果日期已經是可接受的格式(和YMD H:我:s是可以接受的格式)
+0

哦,那是一種解脫,正要來ping您的評論回答。你好嗎 – RiggsFolly

+0

我很好。你的目標如何? –

+0

只是peachie謝謝 – RiggsFolly