我试图找出当前时区内两次之间的差异。我试图弄清楚是否要在两次之间拨打支持电话号码。即,我正在使用active_support
宝石,我想做类似的事情
t
= 当前时间o
= 根据当前日期的开放时间(上午 9 点)c
= 根据当前日期的关闭时间 (5PM)call_open
= 我们开门了吗?
有人能帮忙吗?
我试图找出当前时区内两次之间的差异。我试图弄清楚是否要在两次之间拨打支持电话号码。即,我正在使用active_support
宝石,我想做类似的事情
t
= 当前时间o
= 根据当前日期的开放时间(上午 9 点)c
= 根据当前日期的关闭时间 (5PM)call_open
= 我们开门了吗?有人能帮忙吗?
我相信你能做到
call_open = t.between?(o, c)
t = Time.zone.now
o = Time.zone.today + 8.hours
c = Time.zone.today + 17.hours
call_open = t <= c && t >= o
您可以使用 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