查找与区域中的设置日期相交的最小开始日期



我正在尝试在与设定日期相交的范围内选择最小日期:

假设我设定的日期是今天:11/19/2019 鉴于以下日期,我需要找到今天相交的事件的最短开始日期。 在这种情况下,这将是11/12/2019.

| StartDate  | EndDate    |  
| -----------| -----------|    
| 11/19/2019 | 11/20/2019 | 
| 11/01/2019 | 11/18/2019 |
| 11/14/2019 | 11/19/2019 |
| 11/17/2019 | 11/21/2019 |
| 11/12/2019 | 11/23/2019 |
| 11/18/2019 | 11/24/2019 |
| 11/13/2019 | 11/27/2019 |

这是我的小提琴尝试: https://jsfiddle.net/89shcxty/

你的代码有几个问题;首先,你没有从overlappedRanges中的对象中访问实际的startend值,你也没有检查范围今天是否真的重叠。这应该做你想要的。请注意,我还修改了代码以返回null如果今天没有重叠的范围;您可能需要检查该返回值。

var overlappedRanges = [{
  start: '11/19/2019',
  end: '11/20/2019'
}, {
  start: '11/01/2019',
  end: '11/18/2019'
}, {
  start: '11/14/2019',
  end: '11/19/2019'
}, {
  start: '11/17/2019',
  end: '11/21/2019'
}, {
  start: '11/12/2019',
  end: '11/23/2019'
}, {
  start: '11/18/2019',
  end: '11/24/2019'
}];
function min_start_date(all_dates) {
  min_dt = null;
  today = new Date();
  all_dates.forEach(function(v) {
    let s = new Date(v.start);
    let e = new Date(v.end);
    if (s > today || e < today) return;
    if (min_dt === null || s < new Date(min_dt)) {
      min_dt = v.start;
    }
  });
  return min_dt;
}
$('#overlapped').text(min_start_date(overlappedRanges));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="overlapped" style="color: red;"></span>
<br>
<span id="notOverlapped" style="color: green;"></span>