首页 > 解决方案 > Rails Activerecord 日期从 20 到 20

问题描述

我只需要展示一个月20号到下个月20号之间的作品(每个月20号到20号)

我看到两种情况:

1.- 如果我在任何一个月的 15 岁(或低于 20 岁),我必须从上个月的 20 日到今天显示。

2.- 如果我在任何一个月的 25 岁(或高于 20 岁),我必须从本月 20 日到今天显示。

我不知道类似这样的东西的语法

if Date.today.day > 20
  @works = Work.where(created_at: "20 of this month to Date.today")
else
  @works = Work.where(created_at: "20 of last month to Date.today")
end

标签: ruby-on-railsrubyactiverecord

解决方案


date = Date.today.change(day: 20)
date -= 1.month if date > Date.today
@works = Work.where(created_at: date..(date + 1.month))

根据您的具体要求,最后一个条件可以是以下任何一种:

date..(date + 1.month)
date...(date + 1.month)
date..date.today
date...date.today

推荐阅读