<html>javascript
<body>html
<span>倒計時30分鐘:</span><span id="clock">00:30:00:00</span>java
</body>ide
</heml>函數
<script type="text/javascript">
spa
//秒錶倒計時控制
var normalelapse = 100;
var nextelapse = normalelapse;
var counter;
var startTime;
var start1 = clock.innerText;
var finish = "00:00:00:00";
var timer = null;
// 開始運行
function run() {
counter = 0;
// 初始化開始時間
startTime = new Date().valueOf();
//alert(startTime);
// nextelapse是定時時間, 初始時爲100毫秒
// 注意setInterval函數: 時間逝去nextelapse(毫秒)後, onTimer纔開始執行
timer = window.setInterval("onTimer()", nextelapse);
}
// 中止運行
function stop() {
window.clearTimeout(timer);
}
window.onload = function() {
run();
}
// 倒計時函數
function onTimer()
{
if (start1 == finish)
{
window.clearInterval(timer);
return;
}
var hms = new String(start1).split(":");
var ms = new Number(hms[3]);
var s = new Number(hms[2]);
var m = new Number(hms[1]);
var h = new Number(hms[0]);
ms -= 10;
if (ms < 0)
{
ms = 90;
s -= 1;
if (s < 0)
{
s = 59;
m -= 1;
}
if (m < 0)
{
m = 59;
h -= 1;
}
}
var ms = ms < 10 ? ("0" + ms) : ms;
var ss = s < 10 ? ("0" + s) : s;
var sm = m < 10 ? ("0" + m) : m;
var sh = h < 10 ? ("0" + h) : h;
start1 = sh + ":" + sm + ":" + ss + ":" + ms;
clock.innerText = start1;
// 清除上一次的定時器
window.clearInterval(timer);
// 自校驗系統時間獲得時間差, 並由此獲得下次所啓動的新定時器的時間nextelapse
counter++;
var counterSecs = counter * 100;
var elapseSecs = new Date().valueOf() - startTime;
var diffSecs = counterSecs - elapseSecs;
nextelapse = normalelapse + diffSecs;
//diff.value = counterSecs + "-" + elapseSecs + "=" + diffSecs;
// next.value = "nextelapse = " + nextelapse;
if (nextelapse < 0) nextelapse = 0;
// 啓動新的定時器
timer = window.setInterval("onTimer()", nextelapse);
}
orm
</script>htm