#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_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'
}
]
Ответ №1:
Вы можете сделать что-то вроде этого:
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"
},
{
id: '3',
start_time: "2020-11-15T20:50:00 00:00",
end_time: "2020-11-15T21:30:00 00:00"
},
{
id: '4',
start_time: "2020-11-15T22:30:00 00:00",
end_time: "2020-11-15T22:40:00 00:00"
},
];
var startTime = '2020-11-15T00:00:00 00:00';
var endTime = '2020-11-15T23:59:00 00:00';
let availableHours = [];
for(let index in meetings){
if(index != meetings.length - 1){
index == 0 ? availableHours.push({start_time: startTime, end_time: meetings[index]['start_time'] }) : 0;
availableHours.push({start_time: meetings[index].end_time, end_time: meetings[ index 1]['start_time'] });
} else {
availableHours.push({start_time: meetings[index].end_time, end_time: endTime })
}
}
console.log(meetings)
console.log(availableHours)
Комментарии:
1. СПАСИБО за ваш ответ. Но часы с 14:15 до 19:30 не включены. Не могли бы вы также предоставить новый пример кода в этом случае для всех часов
2. код обновлен, все готово. удачи с вашим проектом!