Ruby,创建数组的时间与当前时间之间的差异

Ruby, difference between time an array was created and the current time

我正在尝试获取创建数组的时间与当前时间之间的差异,我似乎无法理解它,我这样做了,这似乎完全合乎逻辑,但似乎并不永远工作。

mergelisting = MergeList.Pluck(:created_at, :partner, :gambler, :amount)
  (mergelisting).each do |i|
    t = Time.now
    nowtime = t.strftime("%I")
    nowtime.to_i
    mergetime = i[1].strftime("%I")
    mergetime.to_i
    if nowtime - mergetime == 6
      do some stuff...
    end
  end

我真正的问题是 24 和 6 之间的小时差是 6 小时,但是 24-6 不会给 6。我可以在这里做什么

我假设 MergeList.Pluck returns 一个 Array,并且此数组中的第一项将是数据库中的 Rails created_at 列.那么:

mergelisting = MergeList.Pluck(:created_at, :partner, :gambler, :amount)

mergetime  = mergelisting.first           # Time from DB (created_at)
nowtime    = Time.now                     # Current time
timediff_s = nowtime - mergetime          # Difference in seconds
timediff_h = timediff_s / (60 * 60).to_f  # Difference in hours as a floating point number

#
# Not exactly sure if this is what you wanted, but you now
# have the time difference as a floating point number expressed
# in hours. So you can do whatever you want with it
#
if (timediff_h.to_i == 6)
  ...the difference is anywhere between 6.0 and 7.0 hours...
  ...do whatever you need to do...
end