2009-12-14 191 views
3

我有一個數據模型,其中包含DateTime屬性,日期。我想知道那天是否是今天。我有一段時間!Rails比較日期

>> Deal.first.date 
=> Mon, 14 Dec 2009 23:59:59 EST -05:00 

我已經嘗試了很多技術,我會很尷尬地把它們放在這裏。所以我會問,我需要在ActiveRecord查找方法中匹配這個日期?

謝謝, 亞倫。

+0

[我剛纔的問題(HTTP://計算器.com/questions/1820677/what-is-best-way-to-query-a-datetime-field-against-date-fields)可以幫助你。 – jpemberthy 2009-12-14 22:14:35

回答

5

我在猜測時區正在駕駛着你。

對於一個具體的例子,你可以這樣做:

model.date.today? 

對於一個ActiveRecord發現,試試這個:

Deal.all(:conditions=>['date > ?',Time.zone.now.beginning_of_day]) 

這裏的問題:​​

+0

這個工作,無論是否插入zone方法。的whooo! 我不認爲該區域設置是問題,但: Time.zone.now.beginning_of_day == Date.today.beginning_of_day =>真 – 2009-12-14 23:55:17

+0

你值得擁有一枚此。 Date.today應該是非法的;從所有文檔中刪除。 – Dogweather 2012-09-11 21:29:50

0

我會像這樣的東西去:

Deal.find(:first, :conditions => ['date >= ? AND date < ?', Date.today, Date.today+1]) 
+0

我已經試過了;查詢返回nil。 – 2009-12-14 23:47:23

-1

我認爲這應該工作,不知道這是否會雖然,因爲我沒有測試它。

Deal.first(:condition => { :date => Date.today }) 
+0

恐怕不行;返回零。 – 2009-12-14 23:49:02

+0

糟糕,它應該是':conditions',而不是':condition'。你也可以試試這個: Deal.first(:conditions => {:date =>(Date.today)..(Date.today + 1)}) – henrikhodne 2009-12-15 00:07:41