Ich kenn mich in PHP nicht wirklich aus, aber ich poste einfach mal was mir aufgefallen ist.
Genauso würde ich auch mit den minuten verfahren. Mit [§sec-60;] setzt du IMMO nicht den wert von $sec sondern rechnest ihn nur. Ich glaube das müsste so heissen [$sec == $sec - 60;]. Durch die verwendung einer while schleife bleibt das ganze dann hängen.