2011-07-05 26 views
1

我想在Doctrine中寫一個查詢,將返回在特定numbr天數內添加的記錄,我在查詢中有這條線但不起作用預計:在DQL中查詢表以獲取過去一週創建的記錄

$q->andWhere('g.date_added >= ?', array(strtotime('-'.$recent_interval.' day'))); 

date_added是一個mySQL時間戳。

recent_interval是天數。

我使用學說-1.2.4與Zend框架1.11.7

欣賞的幫助。

回答

3

MySQL時間戳的格式爲YYYY-MM-DD HH:MM:SS。您將它與UNIX時間戳進行比較,該時間戳是從strtotime()返回的數字。

您需要先將UNIX時間戳轉換爲MySQL時間戳才能使其工作。

要格式化UNIX時間戳,您可以使用PHP date()函數。格式是Y-m-d H:i:s

例子:

$compare = date('Y-m-d H:i:s', strtotime('-'.$recent_interval.' day')); 
$q->andWhere('g.date_added >= ?', array($compare)); 
+0

謝謝兄弟,作爲現在預計。 – Sid

1

你忘了給數組更改爲教義的理解:

下面顯示了你該怎麼做:

- > andWhere(「G .date_added> =?',date('Ym-d',strtotime(「 - 2 weeks」)))

+1

很明顯,你會想做:strtotime(' - '。$ recent_interval。'day'),而不是我-2周的例子。 – Eljakim

相關問題