我编写的脚本有一个小问题,它应该以 hh:mm:ss 格式返回脚本的持续时间(执行时间)。
这是脚本:
var start = new Date();
{
CODE GOES IN HERE
}
var end = new Date();
var miliseconds = end - start;
function runTime(ms) {
var seconds = 0;
var minutes = 0;
var hours = 0;
if (ms > 1000) {
seconds = (ms / 1000).toFixed(0);
if (seconds > 60) {
seconds -= 60;
minutes = (seconds / 60).toFixed(0);
if (minutes > 60) {
minutes -= 60;
hours = (minutes / 60).toFixed(0)
}
}
}
if (seconds.toString().length == 1) {
var seconds = '0' + seconds;
}
if (minutes.toString().length == 1) {
var minutes = '0' + minutes;
}
if (hours.toString().length == 1) {
var hours = '0' + hours;
}
return("Job Done in: " + hours + ":" + minutes + ":" + seconds + "(" + miliseconds + "ms)");
}
iimDisplay(runTime(miliseconds));
这些是一些示例输出:
Job Done in: 03:166:13548(13608024ms)
Job Done in: 00:51:3032(3091973ms)
Job Done in: 00:02:3706(3766265ms)
Job Done in: 00:50:2994(3053675ms)
Job Done in: 00:52:30(3152527ms)
正如您所看到的,有时它看起来不太正确,通常脚本会持续 40-60 分钟,因此大多数情况下分钟都是准确的。
最佳答案
我认为你的问题在这里:
if (seconds > 60) {
seconds -= 60;
minutes = (seconds / 60).toFixed(0);
if (minutes > 60) {
minutes -= 60;
hours = (minutes / 60).toFixed(0)
}
}
当秒大于 60 时,您只需取 60。例如,如果秒为 189,您将得到 129,而不是您想要的 9。您必须计算分钟,然后执行以下操作:
seconds = seconds - (minutes * 60);
您必须在几分钟内完成同样的事情,但需要花费数小时。
关于javascript - JS脚本持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22114163/