我想弄清楚当前时区内两次的差异。我想弄清楚是否要拨打两次支持电话号码。即,我正在使用active_support
宝石,我想做类似
t
=当前时间o
=根据当前日期(上午9点)的开放时间c
=根据当前日期(下午5点)的关闭时间call_open
=我们打开了吗?有人能帮忙吗?
答案 0 :(得分:2)
我相信你可以做到
call_open = t.between?(o, c)
答案 1 :(得分:0)
t = Time.zone.now
o = Time.zone.today + 8.hours
c = Time.zone.today + 17.hours
call_open = t <= c && t >= o
答案 2 :(得分:0)
您可以使用Time来创建范围,这样可以轻松测试包含范围:
t1 = Time.now
sleep 1
t2 = Time.now
sleep 1
t3 = Time.now
(t1.to_i .. t3.to_i) === t2.to_i # => true
(t1.to_f .. t3.to_f) === t2.to_f # => true
(t1.to_f .. t2.to_f) === t3.to_f # => false
您可以使用解析来弄明白:
starttime = Time.parse('2013/01/24 9AM') # => 2013-01-24 09:00:00 -0700
endtime = Time.parse('2013/01/24 5PM') # => 2013-01-24 17:00:00 -0700
(starttime.to_f .. endtime.to_f) === Time.parse('2013/01/24 3PM').to_f # => true
你只能工作几个小时,这使得它与日期无关:
(t1.hour .. t3.hour) === t2.hour # => true