JavaScript 计算时间和秒数
JavaScript calculate time and seconds
我在尝试使用 JavaScript 执行一些计算逻辑时遇到了一些问题。基本上沿着一条路线有80个台阶,大约需要9分钟才能完成整条路线。
所以我试图做一条自动路线,它会告诉你到达目的地的剩余分钟数。我的逻辑如下:
9 * 60 / 80 = 6.75
所以基本上每步是 6.75 秒,但我想显示一个像 9 而不是 8.4 分钟的整数。这是代码:
getAllBusLoc(function(busList) {
var totalBusLoc = busList.length;
var busLeftPct = Math.round(parseFloat(busList.length) * 40 / 100)
document.getElementById("busStopLeft").innerHTML = totalBusLoc;
pointArr.forEach(function(coord,index){
setTimeout(function(){
var travelTime = document.getElementById(travelDistMin").value;
moveNext(coord.x, coord.y);
}, 1000* index);
});
});
我得到了可变旅行时间,在这种情况下是 9 分钟。对于每个点,我想从 9 分钟内减去 6.75 秒,并显示一个整数而不是 8.2。
有什么想法吗?
提前谢谢。
使用 Math.round()
从 travelTime 中减去 6.75。这将四舍五入到最接近的整数。
我可以建议的一个想法是编写一个通用函数,将十进制时间间隔(例如,8.25 分钟)转换为其等效的"mm:ss"值,而不是舍入,以便显示精确的时间表示形式:
Number.prototype.toMMSS = function () {
d = this;
var sign = d < 0 ? "-" : "";
var min = Math.floor(Math.abs(d))
var sec = Math.floor((Math.abs(d) * 60) % 60);
return sign + (min < 10 ? "0" : "") + min + ":" + (sec < 10 ? "0" : "") + sec;
};
例:
8.25.toMMSS() // "08:15"
JSFiddle
或者,您可以尝试时刻插件持续时间函数,例如:
moment.duration(8.25, 'minutes').minutes(); // 8
或者,人性化的方法四舍五入:
console.log(moment.duration(8.51, "minutes").humanize()); // "9 minutes"
console.log(moment.duration(8.15, "minutes").humanize()); // "8 minutes"
相关文章:
- JavaScript计算帮助(乘以时间)
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 创建一个倒计时计时器脚本,该脚本计算声音文件的持续时间,而不是特定的日期
- 计算浏览器上的空闲时间
- 如何用javascript计算从现在开始的时间
- 如何计算angular JS应用程序(单页应用程序)的页面加载时间
- 根据时间计算运动
- 高图表动态不同的时间计算
- 距离 = 速率 * 时间计算
- 日期时间计算问题
- javascript中的日期时间计算库
- 关于重构jQuery持续时间计算的建议
- Javascript时间计算从昨天到明天
- 以完整格式显示时间计算
- jquery日期和时间计算firefox NaN
- 时间计算算法
- JS时间计算-一个日期在两个日期之间发生了多少次
- 从给定的UTC时间计算UTC时间&PHP中的秒数
- 防止浏览器冻结和崩溃长时间计算
- Javascript多个工作时间计算从日期到现在