Javascript 如何从json输出计算空闲可用时间?

Javascript 如何从json输出计算空闲可用时间?,javascript,Javascript,我在对象中有这种带有开始和结束时间属性的json var meetings = [ { id: '1', start_time: "2020-11-15T08:30:00+00:00", end_time: "2020-11-15T14:15:00+00:00" }, { id: '2', start_time: "2020-11-15T19:30:00+00:00", end

我在对象中有这种带有开始和结束时间属性的json

var meetings = [
  {
    id: '1',
    start_time: "2020-11-15T08:30:00+00:00",
    end_time: "2020-11-15T14:15:00+00:00"
  },
  {
    id: '2',
    start_time: "2020-11-15T19:30:00+00:00",
    end_time: "2020-11-15T20:30:00+00:00"
  },
];
两次会议第一次:08:30-14:15第二次:19:30-20:30

工作时间为24小时,因此:

start_time = '00:00:00';
end_time = '23:59:00';
但我需要的格式是

var start_time = '2020-11-15T00:00:00+00:00';
var end_time = '2020-11-15T23:59:00+00:00';
如何根据已完成的会议计算可用时间? 因为第一次会议是08:30-14:15,第二次会议是19:30-20:30,所以我需要json,在可用时间内有以下结果:


[
  {
    start_time:'2020-11-15T00:00:00+00:00',
    end_time:'2020-11-15T08:30:00+00:00'
  },

  {
    start_time:'2020-11-15T14:15:00+00:00',
    end_time:'2020-11-15T19:30:00+00:00'
  },

  {
    start_time:'2020-11-15T20:30:00+00:00',
    end_time:'2020-11-15T23:59:00+00:00'
  }
]

您可以这样做:

var会议=[
{
id:'1',
开始时间:“2020-11-15T08:30:00+00:00”,
结束时间:“2020-11-15T14:15:00+00:00”
},
{
id:'2',
开始时间:“2020-11-15T19:30:00+00:00”,
结束时间:“2020-11-15T20:30:00+00:00”
},
{
id:'3',
开始时间:“2020-11-15T20:50:00+00:00”,
结束时间:“2020-11-15T21:30:00+00:00”
},
{
id:'4',
开始时间:“2020-11-15T22:30:00+00:00”,
结束时间:“2020-11-15T22:40:00+00:00”
},
];
var startTime='2020-11-15T00:00:00+00:00';
变量结束时间='2020-11-15T23:59:00+00:00';
设可用小时=[];
for(让索引进入会议){
如果(索引!=meetings.length-1){
索引==0?可用小时数。推送({开始时间:开始时间,结束时间:会议[索引]['开始时间]]}):0;
可用小时数。推送({开始时间:会议[索引]。结束时间,结束时间:会议[+index+1]['开始时间']});
}否则{
可用小时数。推送({start\u time:meetings[index].end\u time,end\u time:endTime})
}    
}
控制台日志(会议)

console.log(可用时数)
您可以执行以下操作:

var会议=[
{
id:'1',
开始时间:“2020-11-15T08:30:00+00:00”,
结束时间:“2020-11-15T14:15:00+00:00”
},
{
id:'2',
开始时间:“2020-11-15T19:30:00+00:00”,
结束时间:“2020-11-15T20:30:00+00:00”
},
{
id:'3',
开始时间:“2020-11-15T20:50:00+00:00”,
结束时间:“2020-11-15T21:30:00+00:00”
},
{
id:'4',
开始时间:“2020-11-15T22:30:00+00:00”,
结束时间:“2020-11-15T22:40:00+00:00”
},
];
var startTime='2020-11-15T00:00:00+00:00';
变量结束时间='2020-11-15T23:59:00+00:00';
设可用小时=[];
for(让索引进入会议){
如果(索引!=meetings.length-1){
索引==0?可用小时数。推送({开始时间:开始时间,结束时间:会议[索引]['开始时间]]}):0;
可用小时数。推送({开始时间:会议[索引]。结束时间,结束时间:会议[+index+1]['开始时间']});
}否则{
可用小时数。推送({start\u time:meetings[index].end\u time,end\u time:endTime})
}    
}
控制台日志(会议)

console.log(可用时数)
感谢您的回复。但是14:15到19:30的时间不包括在内。您能否提供新的代码示例以及该案例,对于所有小时代码更新,都已完成。祝你的项目好运!谢谢你的回复。但是从14:15到19:30的时间不包括在内。你能提供新的代码示例吗?同样,对于所有的小时代码更新,都完成了。祝你的项目好运!