3
function TimeConvert(num) {
    for (i = 0; i < num; i+= 60) {
        if (num % 60 < 60) {
            var hours = Math.floor(i / 60);
            if (hours == 0) {
                var minutes = num % 60;
            } else {
                minutes = num % (60 * hours);
            }
        }
    }
    return hours + ":" + minutes;
}

当我打电话时TimeConvert(60),它返回0:0而不是1:0......为什么?我是否必须添加条件来检查是否num % 60 == 0在这种情况下?

4

2 回答 2

5

为什么需要迭代?

function TimeConvert(num) {
    var hours   = Math.floor( num / 60 );
    var minutes = num % 60;
    //minutes = minutes < 10 ? '0'+minutes:minutes
    return hours + ":" + minutes;
}

小提琴

于 2013-06-30T14:35:07.023 回答
3

问题在于i < num它应该是i <= num。你for只用 执行一次i=0,因为在下一步i得到 +60 并i < num变为假。

而且,无论如何,整个功能应该是:

function TimeConvert(num) {
    var hours = Math.floor(num / 60);
    var minutes = num % 60;
    return hours + ":" + minutes;
}
于 2013-06-30T14:32:22.927 回答