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