需求:使用echart将工作时间画出来;将24小时等份划分,每份6小时,然后将工作时间对应着这四个区间进行规划; type:区间1(00:00~06:00),区间2(06:00~12:00),区间3(12:00~18:00),区间4(18:00~24:00) 注意点:后台传过来的时间不能跨天(例如:2022-12-03 24:00:00不能改成2022-12-04 00:00:00),或者前端每次接收数据的时候进行转换! 数据格式: Array:{"beginTime":"2022-12-03 03:00:10","endTime":"2022-12-03 19:10:00"} resultDate:[] isDuringDate(beginTime,endTime,currentTime){ if(currentTime>beginTime&¤tTime<endTime){ return true; }else{ return false; } }, TimeRecursion(Array,resultData){ let beginTime = new Date(Array.beginTime); let endTime = new Date(Array.endTime); let sectionDate1 = new Date(this.useSituationTime + " 00:01"); let sectionDate2 = new Date(this.useSituationTime + " 06:00"); let sectionDate3 = new Date(this.useSituationTime + " 12:00"); let sectionDate4 = new Date(this.useSituationTime + " 18:00"); let sectionDate5 = new Date(this.useSituationTime + " 24:00"); if(beginTime.getTime()>=sectionDate1.getTime()&&endTime.getTime()<=sectionDate2.getTime()){ let map = {type:1,data:[beginTime,endTime]} resultData.push(map); return resultData; }else if(beginTime.getTime()>=sectionDate2.getTime()&&endTime.getTime()<=sectionDate3.getTime()){ let map = {type:2,data:[beginTime,endTime]} resultData.push(map) return resultData; }else if(beginTime.getTime()>=sectionDate3.getTime()&&endTime.getTime()<=sectionDate4.getTime()){ let map = {type:3,data:[beginTime,endTime]} resultData.push(map) return resultData; }else if(beginTime.getTime()>=sectionDate4.getTime()&&endTime.getTime()<=sectionDate5.getTime()){ let map = {type:4,data:[beginTime,endTime]} resultData.push(map) return resultData; }else{ if(this.isDuringDate(beginTime.getTime(),endTime.getTime(),sectionDate4.getTime())){ resultData.push({type:4,data:[sectionDate4,endTime]}) this.TimeRecursion({beginTime:beginTime,endTime:sectionDate4},resultData) }else if(this.isDuringDate(beginTime.getTime(),endTime.getTime(),sectionDate3.getTime())){ resultData.push({type:3,data:[sectionDate3,endTime]}) this.TimeRecursion({beginTime:beginTime,endTime:sectionDate3},resultData) }else if(this.isDuringDate(beginTime.getTime(),endTime.getTime(),sectionDate2.getTime())){ resultData.push({type:2,data:[sectionDate2,endTime]}) this.TimeRecursion({beginTime:beginTime,endTime:sectionDate2},resultData) } } },
判断时间点是否在时间区间内
最新推荐文章于 2024-05-17 14:32:46 发布