0

秒をパラメーターとして取り、時間形式の文字列を返すこの関数があります。

var secondstotime = function(secs) {
    var t = new Date(1970, 0, 1);
    t.setSeconds(secs);
    var s = t.toTimeString().substr(0, 8);
    if (secs > 86399) {
        s = Math.floor((t - Date.parse("1/1/70")) / 3600000) + s.substr(2);
    }
    return s;
}

Chrome と Mozilla では 2 つの異なる結果が得られます。Chrome が正しいことはわかっていますが、Mozilla が時間文字列に 1 時間を追加し続ける理由がわかりません。

例えば:

console.log(secondstotime(20000));

Chrome が私に与えてくれ05:33:20、Mozilla が私に与えてくれる06:33:20

問題が何であるかがわかりません。コードに互換性がない場合はどうなりますか?

4

1 に答える 1