Click here to Skip to main content
15,878,543 members
Please Sign up or sign in to vote.
3.00/5 (4 votes)
See more:
in my site there are work assign for completion to technician where i want to know about how much time taken by the technician in solving the problem.i implement a simple stop watch with the help of java script and is working untill when we stay on page but when we go another page then it is stopped.
and next problem is that when i try to implement multiple stopwatch in the same page then only one is working.

i am using these stop watch in a dynamic page where they are decrease or increase on the basis of pending issue there are not a fixed stop watch in the page when the case close then total entry of that case automatically deleted.

how can implement a multiple stop watch in the site for displaying different time consume by the technicians to resolve the problem.
sorry for gramitical error becoz my english is week.

the code is here

var swCycleTime=50; //run cycle every 50ms?

// Functional Code

var sw,swObj,swct,swnow,swcycle; //create some variables, we'll figure out what they are soon
var swObjAry=new Array(); //and i assume that for every stopwatch on the page an object is created and this is the container array

function swStart(id,ud){ //ok so you click the button which would onclick="swstart($divname,+);" the plus is for count upwards, you can - it
swObj=document.getElementById(id); //so the swobj var is your actual div by the look of it
swct=swObj.innerHTML.split(':'); //and it splits the time into minutes, seconds, milliseconds into an array
swnow=new Date(); //this is the time the button got clicked; //and it fires that variable into swobj's now value
swObj.reset=swObj.innerHTML; //it takes a note of whats in the div so that when you reset, it puts the initial value back in
swObj.ud=ud; //the stopwatch object is told wether to count up or down
if (!isNaN(swObj.innerHTML)){ //if the initial value turns out to be a string,
swObj.time=parseInt(swObj.innerHTML); //parse it to an int
else if (swct.length==4){ //otherwise if our split is 4 long, for hours!
swObj.time=(swct[0]*1000*60)+(swct[1]*1000*60)+(swct[2]*1000)+parseInt(swct[3]); //the stopwatches time so far is mins + secs +ms (total being in ms)
else if (swct.length==3){ //otherwise if our split is 3 long
swObj.time=(swct[0]*1000*60)+(swct[1]*1000)+parseInt(swct[2]); //the stopwatches time so far is mins + secs +ms (total being in ms)
else if (swct.length==2){ //or if its just seconds and milliseconds
else if (swct.length==1){ //or just milliseconds
if (!swObj.time){ //if it has only just started at 0
swObj.time=1; //give it a millisecond to get it started
if (!swObj.c){ //if there isnt a c value (whatever c is :-P )
swObj.c=ud; //then make it + or -, whatever ud was
swObjAry[swObjAry.length]=swObj; //i dont get this - make the number of stopwatches = swobj, the div? :-s

function swStop(id){ //anyway, so if you click the stop button (onclick="swstop($divname)"),
swObj=document.getElementById(id); //get the stopwatch div name
if (!swObj.time){ return; } //if there is no time variable, its already stopped. coolio.
swObj.time=null; //get rid of the time value
sw=new Date().getTime(); //this next bit will have to do with when you resume i suppose
if (swObj.ud=='-'){
if (swObj.cycle<0){ swObj.cycle=0; }
//display the time you stopped on, i added an extra bit here hor the hour

function swCycle(){ //and this will be the running cylce then
swcycle=new Date().getTime();
for (sw0=0;sw0<swobjary.length;sw0++){>
if (swObjAry[sw0].time){
if (swObjAry[sw0].ud=='-'){
if (swObjAry[sw0].cycle<0){ swObjAry[sw0].cycle=0; swObjAry[sw0].time=0; }

swObjAry[sw0].innerHTML=(parseInt(swObjAry[sw0].cycle/1000/60/60)%60)+':'+(parseInt(swObjAry[sw0].cycle/1000/60)%60)+':'+((parseInt((swObjAry[sw0].cycle)/1000)%60)+':'+(swObjAry[sw0].cycle%1000)); //added an hour bit here too

function swReset(id,dt){


<input type="button" value="Start"  önclick="swStart('beg2','+');">
<input type="button" value="Stop"  önclick="swStop('beg2');">
<input type="button" value="Reset"  önclick="swReset('beg2');">
<div id="beg2">0:00:00:000</div>
Updated 16-Jun-12 2:37am

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900