<Html>
<Body>
<Span> countdown 30 minutes: </span> <span id = "clock"> 00: 30: 00: 00 </span>
</Body>
</Heml>
<Script type = "text/javascript">
// Stopwatch countdown Control
Var normalelapse = 100;
Var nextelapse = normalelapse;
Var counter;
Var startTime;
Var start1 = clock. innerText;
Var finish = "00: 00: 00: 00 ";
Var timer = null;
// Start running
Function run (){
Counter = 0;
// Initialization Start Time
StartTime = new Date (). valueOf ();
// Alert (startTime );
// Nextelapse is the scheduled time, initially 100 milliseconds
// Note the setInterval function: The onTimer starts to execute only after nextelapse (milliseconds) expires.
Timer = window. setInterval ("onTimer ()", nextelapse );
}
// Stop running
Function stop (){
Window. clearTimeout (timer );
}
Window. onload = function (){
Run ();
}
// Countdown Function
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;
// Clear the last Timer
Window. clearInterval (timer );
// Obtain the time difference of the self-check system time, and obtain the next start time of the new timer nextelapse.
Counter ++;
Var counterSecs = counter* 100;
Var elapsecs = new Date (). valueOf ()-startTime;
Var diffSecs = counterSecs-elapseSecs;
Nextelapse = normalelapse + diffSecs;
// Diff. value = counterSecs + "-" + elapsecs + "=" + diffSecs;
// Next. value = "nextelapse =" + nextelapse;
If (nextelapse <0) nextelapse = 0;
// Start a new timer
Timer = window. setInterval ("onTimer ()", nextelapse );
}
</Script>
Author: pamchen