rails如何计算3个日期之间的整数时差

时间:2016-07-27 14:17:14

标签: ruby-on-rails datetime

如何比较3个日期,(Time.now - @ model.updated_at)&lt; :整数(转换为天数),因此首先是两个日期之间的减法,并将两个日期之间的差异((时间量)与(<小于)比较:integer.days(时间量)。希望这是有道理的...我会通过不同的选择,但我只是变得更加困惑。谢谢你的帮助。

"#{Time.now}".to_i.days - "#{:updated_at}".to_i.days < "#{:integer}".to_i.days

3 个答案:

答案 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

您可以使用

github

这是一个如何运作的例子

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匹配