如何检查事件的日期是否在日期范围内?

时间:2016-03-10 12:28:52

标签: ruby datetime

我的事件(来自事件模型)具有日期时间形式的starts_at:值。 e.g:

2016-02-18 11:00:00:00000

我想要做的是检查一个事件是否在本周开始。 我希望能够列出本周发生的事件(从最近的星期一开始)。

@events = @calendar.events.where( ... )

我想到了以下几点:

    start_week = Date.today.beginning_of_week(:monday).day()
    end_week = Date.today.beginning_of_week(:monday).day()+6
    range = start_week..end_week
    @events = @calendar.events.where(starts_at: in range)

但它没有考虑月份或年份。另外我不确定如何写'where'子句。我该怎么做呢?感谢

2 个答案:

答案 0 :(得分:2)

试试这个:

start_week = Date.today.beginning_of_week(:monday)
end_week = Date.today.beginning_of_week(:monday)+6
range = start_week..end_week
@events = @calendar.events.where(starts_at: range)

答案 1 :(得分:0)

假设您想要当前周的所有事件,那么这样的事情应该有效:

@events = @calendar.events.where(starts_at: Time.zone.today.all_week)

all_week会返回涵盖当周的日期范围。