将像素转换为分钟

Converting pixels to minutes

本文关键字:分钟 转换 像素      更新时间:2023-09-26

我有一个将像素转换为分钟和小时的应用程序。基本上使用分钟作为度量单位,例如:

120分钟= 240px

我通过这个函数运行它:

convertToTime: function (min) {
    var hours = Math.floor( min / 60);          
    var minutes = Math.round(min % 60);
    if (minutes < 10) {
        minutes = "0" + minutes;
    }
    if (hours > 12) {
        hours = hours % 12;
    }
    return hours + ":" + minutes;
}

除了minutes达到60之外,它返回的所有内容都是正确的。例如,它返回:

12:5812:5912:60

这不是我想要的,因为这不是实时的

我认为问题在于2像素对1分钟的比例。但是我很难把它钉牢。

任何帮助都非常感激,谢谢!

Math.floor(min) % 60代替Math.round(min % 60)

%是模算子。x % 60将始终产生一个介于0和59之间的整数值,包括正整数x,这就是您想要的分钟显示。你的问题是min不是一个整数——正好有一半的时间,因为你是通过将一个整数除以2来获得它的。特别是,当像素数为119时,min为59.5,Math.round()将其舍入为60。由于%一般不太可能做您想要的浮点输入,因此正确的解决方案是在计算其模数之前确保值是整数,而不是在计算后尝试将其四舍五入。

您正在使用Math。除了数学。按分钟计时。你可以用数学来解决这个问题。给他们俩地板!

convertToTime: function (min) {
    var hours = Math.floor( min / 60);          
    var minutes = Math.floor(min % 60);
    if (minutes < 10) {
        minutes = "0" + minutes;
    }
    if (hours > 12) {
        hours = hours % 12;
    }
    return hours + ":" + minutes;
}

你也需要这样做

Math.round(Math.round(min) % 60)

Math.round(Math.floor(min) % 60)

Math.round(Math.ceil(min) % 60)
当你使用float时

可能会给你这个错误…