si pasas las horas a segundos y las restas entre ellas podrias sacar lo que quieres, obviamente despues lo conviertes a hora dividiendo por 60 dos veces
Código PHP:
$inicio = ($hora_inicio*60*60)+($minuto_inicio*60);
$fin = ($hora_fin*60*60)+($minuto_fin*60);
$horas = ($fin-$inicio)/60/60;
echo $horas; // cantidad de horas