2014-10-19 53 views
5

我嘗試比較事件的開始日期和當前日期,以便僅顯示下一個事件。這是我在事件庫中的嘗試:如何比較Extbase存儲庫中的DateTime

public function findNext() { 
    $query = $this->createQuery(); 
    $query->matching(
     $query->greaterThanOrEqual('datum_beginn', new \DateTime('midnight')) 
    ); 
    return $query->execute(); 
} 

但是結果並不如預期。這是由此產生的查詢:

SELECT events.* FROM events WHERE events.datum_beginn >= 1413669600 AND ... 

正如你所看到的DateTime轉換爲時間戳。我如何在查詢中使用NOW NOW()或正確使用DateTime?日

回答

12

使用字符串值:

public function findNext() { 
    $query = $this->createQuery(); 
    $date = new \DateTime('midnight'); 
    $query->matching(
     $query->greaterThanOrEqual('datum_beginn', $date->format('Y-m-d H:i:s')) 
    ); 

    return $query->execute(); 
} 
+2

這並沒有爲我工作(Extbase 6.2)。我不得不使用$ date-> getTimestamp()來代替。 – Martin 2015-06-03 08:47:44

+1

@biesior:你太棒了。我幾乎從你的答案中得到了一切。乾杯! :) – 2015-08-18 13:13:21

+0

@Martin謝謝,你的解決方案工作完美! – Phil 2016-03-15 09:51:26