1. ホーム
  2. ジャバスクリプト

[解決済み】Javascriptの秒を分と秒に変換する。

2022-04-08 17:35:04

質問

よくある問題なのですが、解決方法がよくわかりません。以下のコードは問題なく動作します。

var mind = time % (60 * 60);
var minutes = Math.floor(mind / 60);
         
var secd = mind % 60;
var seconds = Math.ceil(secd);

しかし、1時間または3600秒になると、0分と0秒が返されます。どうすればこれを回避して、すべての分を返せるようになりますか?

解決方法は?

通算秒数を60で割る(60秒/分)と、通算分数が求められます。

var minutes = Math.floor(time / 60);

そして、残りの秒数を求めるには、完全な分数に60を掛け、合計秒数から引きます。

var seconds = time - minutes * 60;

さて、もし完全な時間も取得したい場合は、まず総秒数を3600(60分/時間-60秒/分)で割って、残りの秒数を計算します。

var hours = Math.floor(time / 3600);
time = time - hours * 3600;

そして、完全な分と残り秒を計算します。

ボーナスです。

以下のコードで時刻をプリティプリントします(Druさんの提案です)。

function str_pad_left(string,pad,length) {
    return (new Array(length+1).join(pad)+string).slice(-length);
}

var finalTime = str_pad_left(minutes,'0',2)+':'+str_pad_left(seconds,'0',2);