指定范围内的时间间隔

4

我在Rails服务器上运行了一个cron job。这个rake任务在某些事件触发时向订阅者发出电话/短信。现在当这个事件在晚上10点到早上8点之间触发时,我希望将其存储在队列中,因为没人喜欢在半夜被打扰。如何检查时间是否在晚上10点至早上8点的窗口之间。

注意:每个用户都有自己的时区.. 我在数据库中有这些信息

谢谢


目前,我正在使用包含所有时间的数组进行检查。即hour_array =%w(22 23 0 1 2 3 4 5 6 7)如果hour_array.include?(Time.now.utc.hour.to_s),则将其存储在队列中有更好的方法吗? - benchwarmer
2个回答

6
# here "-07:00" is example of user's timezone offset 
if Time.now.getlocal("-07:00").hour.between?(8, 22) 
  #then we send
else
  #we don't send
end

3
也许可以像这样...
def night_time?(t)
  t.hour > 22 || t.hour < 8
end

可用于:

store_in(queue) if not night_time?(@time)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接