几分钟到几天的转换代码错误

Error in conversion code for minutes to days

在这个网站上找到了这段可爱的代码,在它运行了超过 10,000 分钟之前,它一直运行得很好

function minToTime(duration) { /*Call function 2 */
        var minutes = parseInt(duration%60)
            , hours = parseInt((duration/(60))%24)
            , days = parseInt((duration/(60*24))%7);

        days = (days < 10) ? "0" + days : days;
        hours = (hours < 10) ? "0" + hours : hours;
        minutes = (minutes < 10) ? "0" + minutes : minutes;


        return days + ":" + hours + ":" + minutes;
}

谁能帮我想办法解决这个问题?请记住,我是 javascript 的新手,只有非常基础的知识。

提前致谢

你可以像这样使用 COnvertmintoday(minutes);

函数 COnvertmintoday(newMinutes) {

minutes_day = 24 * 60
minutes = newMinutes;

days = Math.floor(minutes / minutes_day )

return days 
}

在天数的计算中有一个 %7 潜伏,一定是加上了周数。 删除它,代码应该可以正常工作,或者也可以计算周数:

function minToTime(duration) { /*Call function 2 */
    var minutes = parseInt(duration%60)
        , hours = parseInt((duration/(60))%24)
        , days = parseInt(duration/(60*24));   //remove %7

    days = (days < 10) ? "0" + days : days;
    hours = (hours < 10) ? "0" + hours : hours;
    minutes = (minutes < 10) ? "0" + minutes : minutes;


    return days + ":" + hours + ":" + minutes;
}

或者您可以使用它来获取周数:

function minToTime(duration) { /*Call function 2 */
  var minutes = parseInt(duration%60)
    , hours = parseInt((duration/(60))%24)
    , days = parseInt(duration/(60*24)%7)
    , weeks = parseInt(duration/(60*24*7));

  days = (days < 10) ? "0" + days : days;
  hours = (hours < 10) ? "0" + hours : hours;
  minutes = (minutes < 10) ? "0" + minutes : minutes;
  weeks = (weeks < 10) ? "0" + weeks : weeks;


  return weeks + ":" + days + ":" + hours + ":" + minutes;
}

我认为您不需要执行 %7 来获取天数。如果您还想将天数汇总为数周,它可能只会有益。所以 13 天将变成 1 周零 6 天。

但我认为您不需要,因此更改以下代码就足够了:

 var minutes = parseInt(duration%60)
        , hours = parseInt((duration/(60))%24)
        , days = parseInt((duration/(60*24)); //Don't need the %7 here

我整理了一个Jsfiddle来解释同样的问题。