il sistema era corretto, probabilmente sei caduto in errore perchè non calcoli i fusi orari, in automatico mktime detrae i secondi corrispondenti alla nostra zona (+1), cosi quando cerchi di creare il timestamp ottieni dei valori errati...
ci ho sbattuto un attimo la testa anche io prima di capire, ma cosi funziona
codice:
$h1 = "11:00";
$h2 = "01:00";
list($ore1, $minuti1) = explode(":", $h1);
list($ore2, $minuti2) = explode(":", $h2);
$ts1 = mktime($ore1, $minuti1, 0,1,1,1970)+date('Z');
$ts2 = mktime($ore2, $minuti2, 0,1,1,1970)+date('Z');
$result = date('H:i', ($ts1+$ts2)-date('Z'));
echo $h1."+".$h2." = ".$result;
Leggiti il man di mktime con i relativi commenti se vuoi capire meglio.
Comunque se devi sommare solo delle ore puoi brutalmente calcolarti manualmente i secondi e poi usare date per formattare il risultato.
ciao