今天项目有一个需求,就是校验用户保存的时间段,不能与已有的时间段交叉重复,一开始觉得很复杂。后面冷静下来发现其实很简单。用反向思维。
1、获取用户要保存的开始时间和结束时间
2、获取已有的时间段数据
3、遍历时间段数据,分别与用户保存的开始时间和结束时间对比。
对比方案:
①:开始时间和结束时间不能与已有的时间段有交集
②:开始时间和结束时间不能把已有的时间段包含在内。
有了思路,代码就简单了。
/*验证生效时间段是否重复*/
function vaildEffectDateArray(formObj){
var effectDate=formObj.findField("effectDate").getValue();
var loseEffectDate=formObj.findField("loseEffectDate").getValue();
if(effectDateArray.length>0){
for(var i=0;i<effectDateArray.length;i++){
var tmp=effectDateArray[i];
var startDate=tmp.startDate;
var endDate=tmp.endDate;
if(typeof startDate ==