Perchè se converto il valore timestamp di pochi secondo ottengo la conversione con un'ora di differenza?

Con questo codice ad esempio

Codice PHP:
<?php
echo " Inizio Esecuzione Programma \n";
$inizio time();

<
varie_istruzioni>

$fine time();
echo 
"\n Fine Esecuzione Programma \n";
echo 
"\n Tempo impiegato: ".date('H:i:s', ($fine-$inizio))." \n";
?>
perchè alla fine l'output è sballato di un'ora tranne che con il valore "0"?

Ad esempio anche inserendo al posto della differenza il valore "1" il risultato che si ottiene è sempre 01:00:01 (anzichè quello che mi aspetterei di 00:00:01).

Lo si può risolvere facilmente mettendo -3600 dopo la differenza, d'accordo, ma perchè allora se inserisco il timestamp attuale l'ora è corretta e non c'è la differenza anche in questo caso di un'ora???