如何在Ruby中减去两个不同的UTC日期,然后在几分钟内得到差异?
由于
答案 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及更高版本中测试过的最新解决方案。