我有一个时间范围,例如:14:30:00到18:30:00。考虑这个时间范围内某人的工作班次。在此时间范围内,他们声明从15:30:00到16:30:00以及从17:30:00到18:30:00无法工作。
var obj = {
startTime: 14:30,
endTime: 18:30
}
var deviation = [{s:15:30,e:16:30},{s:17:30,e:18:30}]
所以我需要像这样的输出
[{s:14:30 ,e:15:30}, {s:15:30,e:16:30}, {s:16:30,e:17:30}, {s:17:30,e:18:30}]
最佳答案
我根据需要创建了一个示例。我认为代码有些艰巨且冗长,因此如果对您有帮助,请使用否则忽略它。
var obj = {
s: '14:30',
e: '18:30'
}
var deviation = [{
s: '15:30',
e: '16:30'
},
{
s: '17:30',
e: '18:30'
}]
$(document).ready(function () {
deviation.push(obj);
var newArr = [];
$(deviation).each(function (index, value) {
newArr.push(value.e);
newArr.push(value.s);
});
var newArr = newArr.sort();
var $timeArr = [];
lastVal = '';
$(newArr).each(function (index, value) {
if (index == 0) {
lastVal = value;
} else {
var stTime = lastVal;
var endTime = value;
lastVal = endTime;
var pushObj = {
s: stTime,
e: endTime
}
var lsstKey = newArr.length - 1;
if (index != lsstKey) {
$timeArr.push(pushObj);
}
}
});
document.getElementById("myarray").innerHTML = JSON.stringify($timeArr);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="myarray"></p>
请检查以下链接
https://jsfiddle.net/vinay_kaklotar/vbt1uspe/3/
关于javascript - 用JavaScript中的其他时间范围将时间范围分成多个部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58924826/