Aby to zrobić najprościej będzie chyba użyć DateInterval:
https://3v4l.org/t0mtB
Nie przychodzi mi tylko do głowy jakieś lepsze przetworzenie wejściowej godziny niż rozbicie przez explode. Działać działa, ale można poszukać czy da się to ładniej zapisać.