如何检查给定日期是否在365天之内?

时间:2011-11-17 23:38:53

标签: ruby-on-rails ruby ruby-on-rails-3.1

Rails新手问题:

2012-02-12 23:59:30格式给出数据库的日期时间,如何在365天内检查它是否存在?

我尝试过以下操作,但无效:<%= expedite - Date.today %>

4 个答案:

答案 0 :(得分:5)

您可以向Date.today添加若干天,并查看日期是否在此之前或之前:

if expedite <= (Date.today + 365.days)
  # it's within 365 days
end

您也可以改为Date.today + 1.year,但这在技术上会增加365.25天,而不是365天。

答案 1 :(得分:2)

假设你的意思是“从现在起1年”到365天,因为检查365天不算闰年:

if expedite <= 1.year.from_now
  # ...
else
  # ...
end

答案 2 :(得分:0)

此解决方案记录了一年多以前的日期。

if (Date.today-365..Date.today+365).include? expedite
  # it's really within 365 days
end

答案 3 :(得分:0)

在某个日期添加365或365,25天可能不是您想要的。 在闰年:

require 'date'
start = Date.new(2012,2,1)
puts start + 365 #=> 2013-01-31

# Human "one year from now":
puts start >> 12  #=> 2013-02-01