Ide o to, že druhý parameter je timestamp, nie sekundy. Hej, unixový timestamp je síce definovaný ako počet sekúnd od "unixovej epochy", lenže ten má hodnotu 0 len v pásme GMT, čiže hodnota 3630 v našom pásme (GMT+1) pri vypísaní celého dátumu zodpovedá "Thursday 1st of January 1970 02:00:30 AM". Preto ti formát "H:i:s" vypíše korektne 2:00:30.
Funkcia date() pracuje s dátumami, nie so sekundami. Ty potrebuješ najskôr získať správny timestamp pomocou funkcie mktime().
Kód:
$a = mktime(0, 0, 3630);
echo date('l jS \of F Y h:i:s A', $a);
Toto vráti dátum "Friday 30th of October 2015 01:00:30 AM", čiže "H:i:s" bude mať tú hodnotu, ktorú si očakával.