time_difference_in_sec = (DateTime.now - @given_time).to_i.abs
where DateTime.now : #<DateTime: 2015-09-28T19:30:35+05:30 ((2457294j,50435s,957360402n),+19800s,2299161j)>
@given_time : #<DateTime: 2015-09-28T11:30:09+00:00 ((2457294j,41409s,0n),+0s,2299161j)>
time_difference_in_sec : 0
我搜索了很多但没有得到正确答案。
答案 0 :(得分:4)
如果你想要它在几秒钟内,你可以只转换为时间戳,然后减去
time_difference_in_sec = (DateTime.now.to_time.to_i - @given_time.to_time.to_i).abs
否则你最终会处理其他答案中看到的有理数字等等。
答案 1 :(得分:3)
-
运算符以秒为单位返回差异:
2.2.1 :002 > 1.day.ago - 2.days.ago
=> 86399.999778025
2.2.1 :005 > (1.day.ago - 2.days.ago)/1.day
=> 0.9999999986567014
答案 2 :(得分:2)
DateTime.now - @given_time # get the number of days
((DateTime.now - @given_time) * 24 * 3600).to_i # get seconds
(DateTime.now - @given_time).class
=> Rational
理性:有理数可以表示为成对的整数; a / b(b> 0)。其中a是分子,b是分母。整数a等于理性a / 1数学。