如何确定日期是否在一周范围内?

时间:2013-08-26 21:35:29

标签: ruby-on-rails ruby date

我有一个填充了created_at字段的记录。我想要做的是知道created_at是否是在1-2周前创建的,意思是第8,9,10,11,12,13,14天,而不是1-7或15 +。

鉴于我无法在SQL中查询,最好的Rails方法是什么?

3 个答案:

答案 0 :(得分:5)

 ((2.weeks.ago)..(1.week.ago)).include?(record.created_at)

假设2周前是8月13日,1周前是8月20日,记录的created_at属性位于中间位置,这将返回true

答案 1 :(得分:1)

这适用于Ruby 2.0.0,Rails 4.0

Record.created_at.between?(((Date.today - 14.days).beginning_of_day),(Date.today.end_of_day))

答案 2 :(得分:1)

您可以使用范围

Range.new((Date.today-14.days), 
   (Date.today-7.days)) === record.created_at

根据两周前的意思调整范围广告。

修改 一个班轮有点简洁。要打破它。

start_date = (Date.today - 14.days)
end_date = (Date.today - 7.days)

# Now start_date is 2 weeks ago, and end_date is 1 week ago.
#   Test if created_at falls within this range
Range.new(start_date.to_date, end_date.to_date) === record.created_at