jso*_*ray 4 javascript math time
我有一个应用程序,我将像素转换为分钟和小时.基本上使用分钟作为度量单位:
120分钟= 240像素
我通过这个函数运行:
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;
}
Run Code Online (Sandbox Code Playgroud)
除了当分钟达到60时,它正在正确地返回所有内容.例如,它返回:
12:58 12:59 12:60
这不是我想要的,因为那不是实时的.
我认为问题是2像素到1分钟的比例.但是我很难把它钉死.
非常感谢任何帮助!
做Math.floor(min) % 60而不是Math.round(min % 60).
%是模数运算符.x % 60对于正整数x,将始终产生介于0和59之间的整数值,这是您的分钟显示所需的值.你的问题是它min不是一个整数 - 正好是一半的时间,因为你通过将整数除以2得到它.特别是,当你的像素数是119时,min是59.5,并且Math.round()会将其舍入到60.因为%不太可能一般来说,为了浮点输入做你想要的,正确的解决方案是在计算模数之前确保值是一个整数,而不是在之后尝试舍入它.
| 归档时间: |
|
| 查看次数: |
930 次 |
| 最近记录: |