Rails时间段超过午夜

时间:2017-12-14 06:31:36

标签: ruby-on-rails ruby-on-rails-4 web

我有一个rails应用程序,其中包括具有不同时间段(开放和关闭时间)的餐馆。例如,餐厅可能在周一有两个时间段(上午8点 - 下午2点,下午3点30分 - 上午12点)。

我遇到的问题与开放时间和关闭时间有关。我将这些打开和关闭属性存储为我的数据库中的时间类型,并且我有一个实例方法,使用与餐馆可能具有的不同时间段直接相关的当前时间来检查餐馆是否打开。

问题是当我的餐厅一直开到午夜(早上12点)时,餐厅显示为已关闭。例如,如果餐馆有一个时间段,例如下午6点到12点,每当我将这个时间段与当前时间(Time.now> 6pm和Time.now< 12am)进行比较时,它返回false,因此餐厅似乎是即使它不是关闭。

有没有人遇到过这种情况?正如各种帖子所建议的那样,我正在考虑存储持续时间,但我无法弄清楚如何在补偿午夜及以后的时间实际这样做。

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

使用Time.now.hour

适用于下午6点至凌晨12点的时间段

Time.now.hour >= 18

(上午8点至下午2点,下午3点30分至凌晨12点)

hour = Time.now.hour
minutes = Time.now.minutes 
(hour >=8 && hour <= 13) || ((hour == 15 && minutes >= 30) || hour > 15 )