如何比较3个日期,(Time.now - @ model.updated_at)&lt; :整数(转换为天数),因此首先是两个日期之间的减法,并将两个日期之间的差异((时间量)与(<小于)比较:integer.days(时间量)。希望这是有道理的...我会通过不同的选择,但我只是变得更加困惑。谢谢你的帮助。
"#{Time.now}".to_i.days - "#{:updated_at}".to_i.days < "#{:integer}".to_i.days
答案 0 :(得分:2)
我在其中一个项目中也面临同样的情况,我使用了Time Difference Gem。它非常简单易于集成,并为您提供额外的帮助方法,以获得年,月,周,日,小时,分钟和秒的差异。
设置开始和结束日期
start_time = Time.new(2013,1)
end_time = Time.new(2014,1)
现在将计算差异称为
TimeDifference.between(start_time, end_time).in_days
=> 365.0
此外,它为您提供了同时获取所有差异的自由
TimeDifference.between(start_time, end_time).in_each_component
=> {:years=>1.0, :months=>12.0, :weeks=>52.14, :days=>365.0, :hours=>8760.0, :minutes=>525600.0, :seconds=>31536000.0}
答案 1 :(得分:2)
如果您使用的是Rails,则可以使用
获得两个时间对象之间的秒数差异time1 - time2
例如:
diff = 3.days.ago - Time.current
# -259200.000132
使用to_i
获取整数差异。
diff.to_i
-259200
该值以秒为单位。因此,只需使用:
((5.days.ago - 1.day.ago).to_i / 86400).abs
# => 4
答案 2 :(得分:0)
我喜欢使用gem time_diff
您可以使用
这是一个如何运作的例子
Time.diff(Time.parse('2011-03-06'), Time.parse('2011-03-07'))
# => {:year => 0, :month => 0, :week => 0, :day => 1, :hour => 0, :minute => 0, :second => 0, :diff => '1 day and 00:00:00'}
差异可以与third_date匹配