日期减法返回奇数值

时间:2016-09-21 17:56:07

标签: ruby-on-rails ruby ruby-on-rails-4

我试图仅在最近30分钟内创建此记录时才允许销毁记录。

然后我检索记录的created_at值(date2)并检查Time.now(date1):

date1 = 2016-09-21 19:44:52 +0200
date2 = 2016-09-21 17:23:16 UTC

然后我只是减去这两个:

(date1-date2).minutes.to_i

但是返回的结果是成千上万(比如97000)并且当我刷新时增长非常快..(Time.now更改)而我们应该只有141分钟如上面的示例值

2 个答案:

答案 0 :(得分:2)

((date1 - date2) / 60).round 是让事情无法发挥作用的原因。删除它,它应该工作。 如果你想在几分钟之内找到差距,你只需要减去它们,将结果除以每60分钟并将其四舍五入。

{{1}}

希望它有所帮助,快乐的红宝石编码!

答案 1 :(得分:1)

您需要先将当地时间(time1)转换为UTC时间,或将UTC时间(time2)转换为当地时间。

require 'time'

time1 = Time.parse('2016-09-21 19:44:52 +0200')
  #=> 2016-09-21 19:44:52 +0200 
time2 = Time.parse('2016-09-21 17:23:16 UTC')
  #=> 2016-09-21 17:23:16 UTC 

(time1.utc - time2)/60
  #=> 21.6