総ミリ秒が格納されている変数nTimeを、1000で割った余りがミリ秒になり、nTimeを1000で割った整数分を、もう一度nTimeに格納し直す。
次に、nTimeを60で割った余りが秒になり、nTimeを60で割った整数分を、もう一度nTimeに格納し直す。
次に、nTimeを60で割った余りが分になり、nTimeを60で割った整数分が、時になる。
言葉で記述するのは、ちょっと難しいので、下記コード参照

var nTime = 45296789;//総ミリ秒
var milliseconds = nTime % 1000;
nTime = Math.floor(nTime / 1000);
var seconds = nTime % 60;
nTime = Math.floor(nTime / 60);
var minutes = nTime % 60;
var hours = Math.floor(nTime / 60);

こんな感じ。後は、milliseconds、seconds、minutes、hoursに格納した値を整形すれば良し。
この考え方は、汎用的に色々なスクリプトで応用出来そうな気がする。