后台给的数据类型为下图,在表格中渲染它是否在对应的时间段之内
var data = {
id: 1,
name: 'Sinwer',
list: [{
startTime: '9:10',
endTime: '10:20'
},
{
startTime: '14:20',
endTime: '16:33'
}
]
};
这是最终效果
我尝试用moment来进行比较,但是无论我怎么写逻辑最后的结果都不是预期的那样,问一下判断的逻辑怎么写?谢谢了
function diffTime(data) {
var DiffTime = [ {
s: "9:00",
e: '10:00',
flag:false
},{
s: "10:00",
e: '11:00',
flag:false
},{
s: "11:00",
e: '12:00',
flag:false
},{
s: "13:00",
e: '14:00',
flag:false
},{
s: "14:00",
e: '15:00',
flag:false
}, {
s: "15:00",
e: '16:00',
flag:false
},{
s: "16:00",
e: '17:00',
flag:false
},{
s: "17:00",
e: '18:00',
flag:false
}
];
for (var j in DiffTime) {
if( //判断写的不对~_~!
// moment('2017 07 26 '+data.startTime).isBetween('2017 07 26 '+DiffTime[j].s,'2017 07 26 '+DiffTime[j].e) ||
// moment('2017 07 26 '+data.startTime).isAfter('2017 07 26 '+DiffTime[j].s) && moment('2017 07 26 '+data.startTime).isAfter('2017 07 26 '+DiffTime[j].s)
moment('2017 07 26 '+data.startTime).isAfter('2017 07 26 '+DiffTime[j].s) ||
moment('2017 07 26 '+data.endTime).isBefore('2017 07 26 '+DiffTime[j].e)
){
DiffTime[j].flag = true;
}
}
return DiffTime;
}
var timeArr = diffTime(data.list[0]);
console.table(timeArr);
试下这个吧,没多测