我有一个列表,存储有关客户住院的信息。一位客户可能有多个住院细节,每个细节都有一个时间段(住院开始日期和出院日期)。
如果我在一段时间内添加新的住院信息,我需要验证新添加的日期不会与任何客户交叉。现有时间段。是否有任何现有的JavaScript验证可以执行此操作?
答案 0 :(得分:2)
没有内置验证,但您可以轻松地自行编写此类验证。例如:
function periodOverlaps(testPeriod, periods) {
for (var i = 0; i < periods.length; i++) {
var period = periods[i];
if (period.start < testPeriod.start && period.end > testPeriod.start)
return true;
if (period.start > testPeriod.start && period.start < testPeriod.end)
return true;
}
return false;
}
用法示例:
var periods = [{
start : new Date('1/1/2015'),
end : new Date('1/3/2015')
}, {
start : new Date('1/5/2015'),
end : new Date('1/7/2015')
}
];
var testPeriod = {
start : new Date('1/2/2015'),
end : new Date('1/3/2015')
};
periodOverlaps(testPeriod, periods);