В коде не опишу, в PHP не работал, но алгортм примерно такой:
1. Выборка по пользователю из базы;
2. Цикл построчной обработки выбранных данных;
2.1. Если уж у тебя формат времени hh-mm, то переводишь это время в часы: hh+(mm/60). (хотя логичней было бы записывать в базу либо просто часы с дробью, либо минуты с 00.00)
2.2. Если начальное время больше конечного времени, то:
2.2.1. время работы = (24 - начальное время) + конечное время;
2.3. Иначе
2.3.1. время работы = конечное время - начальное время;
2.4. всего времени отработано = всего времени отработано + время работы;
3. Конец цикла построчной обработки выбранных данных;
Ответ: всего времени отработано
P.S. Только смена должна быть не более 24 часов...