我有一个内置于JS的秒表计时器,它使用小时,分钟,秒和毫秒从0开始计数。目前,当用户点击停止按钮时,来自计时器的值被附加到用于表单提交的隐藏输入元素。我需要将任何时间转换为每小时一次,将其转换为附加到隐藏输入的位置。所以现在如果我的时钟在25分00秒停止,输入中的值是00:25:00,我希望它将时间转换为.25(几小时)
例如,30分钟后,附加到我的隐藏输入的值将是.5,45分钟后它将是0.75,依此类推第四。
这是秒表脚本,Stop函数是将值附加到我们的隐藏输入的地方,只需要确保它被转换为每小时
<script type="text/javascript">
var clsStopwatch = function () {
var startAt = 0;
var lapTime = 0;
var now = function () {
return (new Date()).getTime();
};
this.start = function () {
startAt = startAt ? startAt : now();
};
this.stop = function () {
lapTime = startAt ? lapTime + now() - startAt : lapTime;
startAt = 0;
};
this.time = function () {
return lapTime + (startAt ? now() - startAt : 0);
};
};
var x = new clsStopwatch();
var $time;
var clocktimer;
function pad(num, size) {
var s = "0000" + num;
return s.substr(s.length - size);
}
function formatTime(time) {
var h = m = s = ms = 0;
var newTime = '';
h = Math.floor(time / (3600 * 1000));
time = time % (3600 * 1000);
m = Math.floor(time / (60 * 1000));
time = time % (60 * 1000);
s = Math.floor(time / 1000);
ms = time % 1000;
newTime = pad(h, 2) + ':' + pad(m, 2) + ':' + pad(s, 2);
//newTime = pad(h, 2) + ':' + pad(m, 2) + ':' + pad(s, 2) + ':' + pad(ms, 2);
return newTime;
}
function show() {
$time = document.getElementById('time');
update();
}
function update() {
$time.innerHTML = formatTime(x.time());
}
function start() {
clocktimer = setInterval("update()", 1);
x.start();
}
function stop() {
x.stop();
document.getElementById('counter').value = formatTime(x.time());
clearInterval(clocktimer);
}
</script>
答案 0 :(得分:2)
如果我正确理解您的需求,这是您的解决方案:
function millisecondsToHours(amountMS) {
return amountMS / 3600000;
}