Avatar billede madssch Nybegynder
12. marts 2004 - 09:37 Der er 7 kommentarer og
1 løsning

Udregning af tidsdifference

Hej Eksperter!

Jeg efterlyser en funktion, som kan udregne en tidsdifference for mig:

Jeg smider 2 tidspunkter ind i en funktion (f.eks. 10:00:00 og 10:30:00) - funktionen skulle herefter gerne returnere 00:30:00.

Har nogen et smart lille script til dette?

På forhånd tak!
Avatar billede Slettet bruger
12. marts 2004 - 10:20 #1
html, batch osv.?
Avatar billede madssch Nybegynder
12. marts 2004 - 10:22 #2
Huh..?
Avatar billede mm12010 Nybegynder
12. marts 2004 - 10:44 #3
lille og smart?-)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Udregning af tidsdifference</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
function calSecs(t){
    s=t.split(":");
    return (parseInt(s[0]*3600)+parseInt(s[1]*60)+parseInt(s[2]));
    }
function calDiff(int){
    return (underTi(parseInt(int/3600))+":"+underTi(parseInt(int%3600/60))+":"+underTi(parseInt(int%3600%60)));
    }
function underTi(obj){
    return ((obj<10)?"0"+obj:obj);
    }
function timeDiff(t1,t2){
    alert(calDiff(calSecs(t2)-calSecs(t1)));
    return true;
    }
</script>
</head>
<body>
<form name="frm0" method="post" action="">
  <input type="text" name="t1" value="03:54:19">
  <input type="text" name="t2" value="03:58:22">
  <input type="button" name="Button1" value="Button" onclick="timeDiff(this.form.t1.value,this.form.t2.value);">
</form>
<form name="frm1" method="post" action="">
  <input type="text" name="t11" value="10:00:00">
  <input type="text" name="t22" value="10:30:00">
  <input type="button" name="Button2" value="Button" onclick="timeDiff(this.form.t11.value,this.form.t22.value);">
</form>
</body>
</html>
Avatar billede madssch Nybegynder
12. marts 2004 - 11:14 #4
Umiddelbart smart nok, men den har en bug:

Indtaster jeg "23:58:02" og "01:13:50" fejler systemet...
Avatar billede madssch Nybegynder
12. marts 2004 - 11:33 #5
Har selv omskrevet det lidt:

function calSecs(t) {
    s = t.split(":");
    return (parseInt(s[0]*3600)+parseInt(s[1]*60)+parseInt(s[2]));
}

function calDiff(int){
    return (underTi(parseInt(int/3600))+":"+underTi(parseInt(int%3600/60))+":"+underTi(parseInt(int%3600%60)));
}

function underTi(obj){
    return ((obj<10)?"0"+obj:obj);
}

function getTimeDiff(t1,t2){
    if (parseInt(t1.substring(0,t1.indexOf(':'))) > parseInt(t2.substring(0,t2.indexOf(':')))) {
        t2 = Number(t2.substring(0,t2.indexOf(':'))) + 24 + ':' + t2.substring(3, 10);
    }
    alert(calDiff(calSecs(t2)-calSecs(t1)));
    return true;
}

Dette virker...

Post et svar så du kan få dine points...
Avatar billede mm12010 Nybegynder
12. marts 2004 - 11:44 #6
;-)
Avatar billede madssch Nybegynder
12. marts 2004 - 11:46 #7
Tak for hjælpen!  ;-)
Avatar billede mm12010 Nybegynder
12. marts 2004 - 11:47 #8
selv tak :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester