如何检测开始和结束日期是否与JavaScript中的另一个开始日期和结束日期重叠?

时间:2010-03-04 10:51:21

标签: javascript

我在事件对象上同时获得了开始和结束日期对象。我有另一个对象,其中包含相同的开始和结束日期对象。如何测试它们是否相互重叠?

2 个答案:

答案 0 :(得分:2)

这里有一些边缘情况要考虑,但是如果你有两个范围[b1,e1]和[b2,e2],那么它们会重叠:

  1. b1< = b2< = e1或
  2. b1< = e2< = e1或
  3. b2< = b1< = e2或
  4. b2< = e2< = e2
  5. 我认为这些都涵盖了它。

答案 1 :(得分:2)

function doesOverlap(e1, e2)
{
  var e1start = e1.start.getTime();
  var e1end = e1.end.getTime();
  var e2start = e2.start.getTime();
  var e2end = e2.end.getTime();

  return (e1start > e2start && e1start < e2end || 
      e2start > e1start && e2start < e1end)
}