Самая короткая логика для вычисления часов от перекрытого времени php

Я пытаюсь вычислить количество часов пользователя. Если назначено много расписаний.

Расписания –

10:00 AM - 12 pm 11 am - 12 pm 9 am - 12 pm 8 am - 5 pm 

Эти расписания назначаются пользователю. Я должен рассчитать количество часов, сколько времени он тратит на эти графики.

Есть ли какой-нибудь самый короткий метод для расчета этого?

Я хочу ответить = 8 часов. Я не хочу рассчитать diff, я не хочу часов.

НЕТ Я хочу результат 8 .. Я объясню, почему
10:00 – 12:00 — 2 часа, 11:00 – 12:00 —- 1 час уже добавлено, 9:00 – 12:00 —– 3 часа, но 10-12 уже добавлено так 1 час, 8 с 17:00 —- 8 часов

Использовать это:

 $minutes_diff = round(abs(strtotime($time1) - strtotime($time2)) / 60); 

Или это:

 $time1="7.30 AM"; $time2="8.30 PM"; $d1= strtotime($time1); $d2= strtotime($time2); $diff=$d2-$d1; //Print the difference in hours : minutes echo date("H:i",$diff); 

Я написал этот скрипт, чтобы суммировать общее количество часов в графике работы с начала рабочего дня до конца:

 // $key['date'] contains a date format of 'yyyy-mm-dd' // $key['start'] and $key['end'] contains a time of format hh:mm:ss $start = new DateTime( $key['date'] .'T' . $key['start'] ); $end = new DateTime( $key['date'] .'T' . $key['end'] ); // difference returns the differential between start and end resulting in number of hours worked $difference = $start->diff( $end ); // Additionally, I would like 1 hour and 15 minutes to result in 1.25 instead of 1.15 and so on. For this I used this: $minute = $difference->format( '%i' )*1.666666666667; $total = $difference->format( '%h' ) . '.' . $minute;