从现在到午夜之间的 Rails 3 find()

发布于 2024-11-03 17:11:44 字数 84 浏览 1 评论 0原文

我有一个事件模型,其 start_at 类型为日期时间。我如何搜索以查找今天是否还有活动,因此 start_at 从现在到午夜之间。

谢谢

I have an event model which has start_at of type datetime. How can I search to find if there is an Event left for today, so start_at between now and midnight.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

家住魔仙堡 2024-11-10 17:11:46
Event.where("start_at BETWEEN ? AND ?", Time.zone.now, Time.zone.now.end_of_day)
Event.where("start_at BETWEEN ? AND ?", Time.zone.now, Time.zone.now.end_of_day)
三生一梦 2024-11-10 17:11:45

在 Rails 3 中,您现在可以执行此操作:

范围条件

如果您正在寻找内部范围
表的(例如,用户创建
在一定的时间范围内)你可以使用
条件选项加上
IN SQL 语句用于此目的。如果你有
来自控制器的两个日期
你可以做这样的事情
寻找一个范围:

Client.where(:created_at => (params[:start_date].to_date)..(params[:end_date].to_date))

所以在你的情况下它将是:

Event.where(:start_at => (Time.zone.now)..(Time.zone.now.end_of_day))

刚刚测试过,它也可以在 Time.zone.nowTime.zone.now.end_of_day 周围没有括号的情况下工作。

(来自 Rails 指南

In Rails 3, you can do this now:

Range Conditions

If you’re looking for a range inside
of a table (for example, users created
in a certain timeframe) you can use
the conditions option coupled with the
IN SQL statement for this. If you had
two dates coming in from a controller
you could do something like this to
look for a range:

Client.where(:created_at => (params[:start_date].to_date)..(params[:end_date].to_date))

So in your case it would be:

Event.where(:start_at => (Time.zone.now)..(Time.zone.now.end_of_day))

Just tested and it also works without parentheses around Time.zone.now and Time.zone.now.end_of_day.

(From Rails Guides)

此岸叶落 2024-11-10 17:11:45
Event.where('start_at >= ? and start_at <= ?', Time.zone.now, Time.zone.now.end_of_day)

如果您希望这对多个用户来说完全准确,您将必须处理用户时区。

Event.where('start_at >= ? and start_at <= ?', Time.zone.now, Time.zone.now.end_of_day)

You will have to deal with user time zones if you want this to be completely accurate for multiple users.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文