在Ruby中减去日期并在几分钟内得到差异

时间:2010-05-17 20:39:06

标签: ruby date

如何在Ruby中减去两个不同的UTC日期,然后在几分钟内得到差异?

由于

4 个答案:

答案 0 :(得分:57)

如果减去两个Date或DateTime对象,则结果是一个Rational,表示它们之间的天数。你需要的是:

a = Date.new(2009, 10, 13) - Date.new(2009, 10, 11)
(a * 24 * 60).to_i   # 2880 minutes

a = DateTime.new(2009, 10, 13, 12, 0, 0) - DateTime.new(2009, 10, 11, 0, 0, 0)
(a * 24 * 60).to_i   # 3600 minutes

答案 1 :(得分:33)

(time1 - time2)/ 60

如果时间对象是字符串,则Time.parse(time)首先是

答案 2 :(得分:24)

https://rubygems.org/gems/time_difference - Ruby的时差宝石

start_time = Time.new(2013,1)
end_time = Time.new(2014,1)
TimeDifference.between(start_time, end_time).in_minutes

答案 3 :(得分:0)

假设您有一个简单的task_signed_in对象的两个日期task_signed_out@user。我们可以这样:

(@user.task_signed_out.to_datetime - @user.task_signed_in.to_datetime).to_i

这将使您在几天内得到结果。乘以24将得到小时数,再乘以60将得到分钟数,依此类推。

这是在ruby 2.3.x及更高版本中测试过的最新解决方案。