2009-12-14 175 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