检查时间范围重叠的问题
Issue with checking time ranges overlapping
问题:
重叠?方法不 return 期望值。
(start_on.to_i..end_on.to_i).overlaps?(ti.start_time.to_i..ti.end_time.to_i)
它return是假的,但应该是真的。
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 重叠。为什么方法 return 是错误的?数据库中的所有列都是时间类型。当前日期由 Time.parse 方法引起。
我想问题出在日期的第二部分是 2000 年,但第一个是 2016 年。有人知道如何解决吗?
你可以尝试通过这个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"))
问题: 重叠?方法不 return 期望值。
(start_on.to_i..end_on.to_i).overlaps?(ti.start_time.to_i..ti.end_time.to_i)
它return是假的,但应该是真的。
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 重叠。为什么方法 return 是错误的?数据库中的所有列都是时间类型。当前日期由 Time.parse 方法引起。
我想问题出在日期的第二部分是 2000 年,但第一个是 2016 年。有人知道如何解决吗?
你可以尝试通过这个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"))