Давайте предположим, что у нас есть «большой» диапазон даты и времени, например
$big = [
'start' => '2018-09-01 00:00:00',
'stop' => '2018-09-01 23:59:59'
]
Мне нужно создать массив со всеми диапазонами, не включенными в другой массив, как показано ниже:
$exclude = [
[
'start' => '2018-09-01 12:00:00',
'stop' => '2018-09-01 14:59:59'
],
[
'start' => '2018-09-01 18:00:00',
'stop' => '2018-09-01 19:59:59'
]
]
чтобы полученная структура была примерно такой:
$results = [
[
'start' => '2018-09-01 00:00:00',
'stop' => '2018-09-01 11:59:59'
],
[
'start' => '2018-09-01 15:00:00',
'stop' => '2018-09-01 17:59:59'
],
[
'start' => '2018-09-01 20:00:00',
'stop' => '2018-09-01 23:59:59'
]
]
Т.Л., др
У меня большой диапазон дат (как и выше), и мне нужно создать результирующий диапазон, удалив один или несколько диапазонов из другой структуры. Что-то вроде извлечения рабочих перерывов из рабочего дня, сохраняя при этом только реальное рабочее время.
Я использую Carbon и Laravel, есть какое-то нативное решение для этого, или я должен разобрать всю конструкцию и сделать отверстия самостоятельно? Я не люблю изобретать велосипед.