OMG Ponies предлагает отличное предложение, которое делает практически все в запросе sql. Я не знаю, склонны ли вы делать логику в PHP, потому что вы не знали / не чувствовали себя неудобно с более сложным SQL, или если вы по какой-то причине хотите выполнять больше работы в PHP.
Ваш PHP, похоже, следует в основном правильной идее, но в этой строке полно проблем
$ min_time = min (TIME_FORMAT (time_duration, '% h:% i:% s'));
Одна минута с одним буквальным аргументом? Ему нужно указать либо массив, либо два или более литералов.
Два: вы используете TIME_FORMAT неправильно.
echo TIME_FORMAT ('2010-10-15 11:15:00', '% h:% m:% s'); // вылетает при запуске
Три: time_duration - это индекс $ raw, строка вашего ответа. Это не приемлемый аргумент. Возможно, вы хотели положить туда время?
Мне нравится использовать метки времени UNIX (длинные целые числа, в которых хранятся год, секунда и все, что находится между ними) и форматировать их непосредственно перед отображением, что может оказаться полезным для этой цели. Проверьте функции date и mktime , чтобы увидеть, что это значит. Это сделало бы ваши сравнения простыми и беззаботными, и вы можете просто отформатировать их по своему желанию прямо перед (или внутри) эхом.