记录一下产品要求时间段中时间不能重复

182 阅读1分钟

先把时间转成分钟,用来比较大小 export function toMinites (time){ //将时间转成分钟进行例如传入10:00,返回600 if(time){ let mins= null let times=time.split(':') mins=parseInt(times[0])*60+parseInt(times[1]) return mins } }

在把分钟转成时间 export function toHHmmFormat(minutes){//将分钟转换为时间例如传入600,返回10:00 let h= null let m=null if(minutes){ h=('0'+parseInt(minutes/60)).slice(-2) m=('0'+( minutes % 60)).slice(-2) } return [h,m].join(':') }

编写验证 var validatorTime = (rule, value, callback) => { var startTime,endTime for(var i=0;i<时间段数组.length;i++){ endTime = toMinites(时间段数组[i].endTime) startTime = toMinites(时间段数组[i].startTime) for (var j = i + 1; j < 时间段数组.length; j++) { if (时间段数组[i].startTime === 时间段数组[j].startTime && 时间段数组[i].startTime === value) { callback(new Error('时间段不可交集')) }else if(时间段数组[i].endTime === 时间段数组[j].endTime && 时间段数组[i].endTime === value){ callback(new Error('时间段不可交集')) }else{ if( toMinites(value)<endTime && toMinites(value)>startTime){ callback(new Error('时间段不可交集')) } } } } callback()