Rails的新手,请耐心等待。我在db中为字段start_time创建了一个:time type列。现在,我必须检查start_time是否比current_time长5小时。
当我在rails控制台中检索 start_time 时,它会给我:(日期永远不会在此时间内更改)
2000-01-01 10:00:00 +0000
当前时间,即 Time.now
Sun, 23 Jul 2017 20:58:23 IST +05:30
我已将这两个值存储在变量中,如此,
a = start_time #2000-01-01 10:00:00 +0000
b = Time.zone.now #Sun, 23 Jul 2017 20:58:23 IST +05:30
现在,我想要的是下面的内容:
if ((a - b) > 5 hours)
#do something
end
我无法弄清楚如何做到这一点。我不关心约会,我只需要时差。
答案 0 :(得分:1)
尝试将UTC时间转换为相同的时区:
a = start_time #2000-01-01 10:00:00 +0000
b = Time.zone.now #Sun, 23 Jul 2017 20:58:23 IST +05:30
same_time_kind = b.to_date
然后比较:
if ((a - b) > 5.hours)
#do something
end
答案 1 :(得分:0)
c = ((b - a) / 1.hour).round.modulo(24)
if c > 5
# do something
end
答案 2 :(得分:0)
可以将时间转换为整数:
a = start_time.to_i
b = Time.zone.now.to_i
if ((a - b) > 5.hours.to_i)
#do something
end