【问题标题】:Issue with checking time ranges overlapping检查时间范围重叠的问题
【发布时间】:2016-08-19 18:32:11
【问题描述】:

问题: 重叠?方法不返回期望值。

(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 年。有人知道如何解决吗?

【问题讨论】:

    标签: ruby time overlap


    【解决方案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"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多