检查日期是否超过一天,超过一岁等?

时间:2011-05-28 00:33:54

标签: ruby-on-rails ruby

最好的方法是检查日期是否超过一天或一岁等?

5 个答案:

答案 0 :(得分:9)

请参阅此问题:comparision of date in ruby

之类的值进行比较
1.day.ago
1.month.ago
1.year.ago

使用这些产生以下输出:

Loading development environment (Rails 3.0.7)
ruby-1.9.2-p180 :001 > 1.year.ago
 => Thu, 27 May 2010 17:45:25 UTC +00:00 
ruby-1.9.2-p180 :002 > 1.month.ago
 => Wed, 27 Apr 2011 17:45:32 UTC +00:00 
ruby-1.9.2-p180 :003 > 1.day.ago
 => Thu, 26 May 2011 17:45:36 UTC +00:00 
ruby-1.9.2-p180 :004 > 

看看是否有效。

答案 1 :(得分:4)

使用ActiveSupport助手

@date < 1.day.ago

@some_other_date < 2.years.ago

答案 2 :(得分:3)

if the_date < 1.day.ago or the_date < 1.year.ago

答案 3 :(得分:1)

尝试:

a_date > 1.day.ago
a_date > 1.year.ago

答案 4 :(得分:0)

Rails 6 现在有 more idiomatic Time comparitors 可供您使用:

if (nextCell.getCellType() == Cell.CELL_TYPE_BLANK)

我认为这比标准的比较运算符要好得多。

正如 Jan Klimo 在上面的评论中提到的,您很自然地会将 date.before?(1.day.ago) date.after?(1.week.ago) 读为“last_login > 1.month.ago is more than 1 day ago”,这与它的意思完全相反。

last_loginbefore? 允许您在解析时避免额外的心理跳跃。