Rails比较日期

时间:2009-12-14 22:06:16

标签: ruby-on-rails ruby

我有一个包含DateTime属性date的数据模型。我想知道这个日期是否是今天。我有一段时间了!

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

我已经尝试了很多技巧,我会很尴尬地将它们放在这里。所以我想问一下,我需要在ActiveRecord find方法中匹配这个日期?

谢谢, 亚伦。

3 个答案:

答案 0 :(得分:5)

我猜测时区正在推动你的屁股。

对于特定情况,您可以执行以下操作:

 model.date.today?

要查找有效的记录,请尝试以下操作:

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

问题在于:

>> Time.zone.now.beginning_of_day == Date.today.beginning_of_day
=> false

答案 1 :(得分:0)

我会选择这样的事情:

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

答案 2 :(得分:-1)

我认为这应该有用,但不确定是否可以,因为我没有测试过。

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