@VoRoN1999

Как найти самое раннее и позднее время?

Всем привет.
Есть массив:
[
0 => [
"to" => "10:00"
"from" => "02:00"
]
1 => [
"to" => "08:00"
"from" => "22:00"
]
2 => [
"to" => "10:00"
"from" => "00:00"
]
и т.д.
]

Как я могу получить самое раннее и позднее время? to - ранее from - позднее.
В данном примере должен быть результат, что to - 08:00, а from - 02:00. Элементов может быть много.
Спасибо!
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Надо задать точку перехода, то есть время, в которое одни рабочие сутки сменяют другие. Например, 06:00.
Для времени в интервале от 00:00 до точки перехода прибавлять 24 часа. Тогда 22:00 останется как есть, 00:00 превратится в 24:00, 02:00 в 26:00.
Ну а поиск минимума и максимума по массиву - это элементарная задача.
Ответ написан
@mletov
На основе решения Rsa97
Я бы добавил в каждый элемент массива еще 2 поля: fromSort и toSort.
И записал бы в них время в абсолютных часах (int).
Например, toSort:
Если это 5:00 этого дня (в который начали работать), то пишем 5, а если 5:00 след дня, то прибавляем 24, т е toInt = 29

Ну а дальше сортируете массив по числу, https://www.php.net/manual/en/array.sorting.php в помощь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы