Aber die Berechnung ist doch Prinzipiell die Gleiche, nur das du andere Start- und End-Werte hast.
Also was funktioniert dabei nicht (genaue Beschreibung)?
Tipp: Baue eine Funktion die diese Berechnung macht und nutze sie für beide á la: $diff = _calculateDiff($StartTime, $Endtime) die dir dann immer einfach den Wert zurück gibt.
Wenn das dann bei einem von beidem nicht passt, weißt du das entweder die Startzeit oder die Endzeit nicht passt.
Btw.: Hast du diese mal geprüft ob diese stimmen?