一尘不染

Javascript秒到分钟和秒

javascript

这是一个常见的问题,但我不确定如何解决。下面的代码工作正常。

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

var secd = mind % 60;
var seconds = Math.ceil(secd);

但是,当我到达1小时或3600秒时,它将返回0分0秒。我如何避免这种情况,让它返回所有分钟?

谢谢


阅读 686

收藏
2020-05-01

共1个答案

一尘不染

要获得完整的分钟数,请将总秒数除以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);
2020-05-01