我需要检查我当前的时间是否在指定的时间间隔(今晚 9 点到明天上午 9 点)之间。如何在 Ruby on Rails 中完成此操作?
提前致谢
显然这是一个老问题,已经标有correct答案,但是,我想发布一个答案,可以帮助人们通过搜索找到相同的问题。
标记为正确的答案的问题在于,您当前的时间可能已经过了午夜,在那个时间点,建议的解决方案将失败。
这是考虑到这种情况的替代方案。
now = Time.now
if (0..8).cover? now.hour
# Note: you could test for 9:00:00.000
# but we're testing for BEFORE 9am.
# ie. 8:59:59.999
a = now - 1.day
else
a = now
end
start = Time.new a.year, a.month, a.day, 21, 0, 0
b = a + 1.day
stop = Time.new b.year, b.month, b.day, 9, 0, 0
puts (start..stop).cover? now
再次,使用include?
代替cover?
对于红宝石 1.8.x
Of course you should upgrade to Ruby 2.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)