问题: 重叠?方法不会返回期望值。
(start_on.to_i..end_on.to_i).overlaps?(ti.start_time.to_i..ti.end_time.to_i)
它返回false,但应该是true。
start_on:2016-08-19 11:00:00 +0200
end_on:2016-08-19 12:00:00 +0200
ti.start_time:2000-01-01 08:00:00 UTC
ti.end_time:2000-01-01 12:00:00 UTC
11:00-12:00之间的时间与08:00-12:00重叠。为什么方法返回false?数据库中的所有列都是时间类型。当前日期由Time.parse方法引起。
我认为问题是日期的第二部分时间有2000年,但是2016年第一部分。任何人都知道如何修复它?
答案 0 :(得分:1)
您可以尝试通过此strftime("%H:%M")
获取时间。
结果:
(start_on.strftime("%H:%M")..end_on.strftime("%H:%M")).overlaps?(ti.start_time.strftime("%H:%M")..ti.end_time.strftime("%H:%M"))