将DateTime与当前日期进行比较

时间:2010-06-03 20:53:05

标签: ruby-on-rails datetime date

当start_at DateTime等于或大于今天的日期时,我试图对事件使用条件。 我想列出即将举行的活动,但很明显,如果它们已经过去,它们就不会即将发布。

我有:

@appointments = Event.find(:all, :conditions => ['move_id = ? AND start_at = ?', @move.id, Date.today])

我想我可能会在这里比较苹果和橘子。它不会抛出错误,只是没有做它应该做的事情。

帮助!提前谢谢。

2 个答案:

答案 0 :(得分:3)

尝试:

@appointments = Event.find(:all, :conditions => ['move_id = ? AND start_at >= ?', @move.id, DateTime.now])

奇怪的是我找不到DateTime#now documentation。

我正在使用Postgres进行此测试。

>> Event.last.created_at.class
=> Time
>> Event.find(:first, :conditions => ['created_at >= ?', DateTime.now]).valid?
=> true

迁移字段代码

t.datetime "created_at", :null => false

答案 1 :(得分:0)

正如你所说,start_at等于或大于今天的日期,也许是运营商在今天的日期检查你的事件的start_at时遇到的问题

Evento.find(:all, :conditions => ['start_at >= ?', DateTime.now])

如果您使用的是mysql,可以使用“start_at> = CURRENT_DATETIME”或类似的东西