2016-08-19 49 views
0

问题: 重叠?方法不返回期望值。问题与检查时间范围重叠

(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年。任何人都知道如何解决它?

回答

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"))