Avatar billede askhoej Praktikant
01. september 2006 - 14:45 Der er 7 kommentarer og
1 løsning

Sekunder til dage/timer/minutter/sekunder

Hej

Er der nogen der kan hjælpe med en funktion der tager et et antal sekunder og returnere en streng i følgende format:

X dage XX timer XX minutter XX sekunder

hvis sekunderne er minus så skal det vises sådan her:

- X dage XX timer XX minutter XX sekunder

På forhånd tak :-)

/askhoej
Avatar billede mcgoat Nybegynder
01. september 2006 - 14:58 #1
fandt noget du måske kan bruge?. laver millisekunder om til dage,minutter, sekunder

<script language="javascript">


function two(x) {return ((x>9)?"":"0")+x}
function three(x) {return ((x>99)?"":"0")+((x>9)?"":"0")+x}

function time(ms) {
var sec = Math.floor(ms/1000)
ms = ms % 1000
t = three(ms)

var min = Math.floor(sec/60)
sec = sec % 60
t = two(sec) + ":" + t

var hr = Math.floor(min/60)
min = min % 60
t = two(min) + ":" + t

var day = Math.floor(hr/60)
hr = hr % 60
t = two(hr) + ":" + t
t = day + ":" + t

return t
}

document.write(time(1000000000))

</script>
Avatar billede nielle Nybegynder
01. september 2006 - 14:58 #2
Noget i denne stil?

function DHMS(secTotal)
{
    var sec = secTotal % 60;

    secTotal /= 60;
    secTotal = Math.floor(secTotal);
    var min = secTotal % 60;

    secTotal /= 60;
    secTotal = Math.floor(secTotal);
    var hour = secTotal % 24;

    secTotal /= 24;
    secTotal = Math.floor(secTotal);
    var day = secTotal;

    return day + " dage " + hour + " timer " + min + " minutter " + sec + " sekunder";
}
Avatar billede askhoej Praktikant
01. september 2006 - 15:23 #3
tak for hjælpen :-)

nielle> hvis jeg kalder din med -25 sekunder så udskriver den:

-1 dage -1 timer -1 minutter -25 sekunder

kan det blive til:

0 dage 0 timer 0 minutter -25 sekunder
Avatar billede nielle Nybegynder
01. september 2006 - 15:27 #4
Var ikke klar over at du kunne funde på at give den negative værdier. Hvad hvis den får -3600? Skal det så være:

0 dage -1 timer 0 minutter 0 sekunder

?
Avatar billede nielle Nybegynder
01. september 2006 - 15:34 #5
Det gætter jeg på at den skal:

function DHMS(secTotal)
{
    var signum = (secTotal >= 0) ? +1 : -1;
    secTotal *= signum;

    var sec = signum*secTotal % 60;

    secTotal /= 60;
    secTotal = Math.floor(secTotal);
    var min = signum*secTotal % 60;

    secTotal /= 60;
    secTotal = Math.floor(secTotal);
    var hour = signum*secTotal % 24;

    secTotal /= 24;
    secTotal = Math.floor(secTotal);
    var day = signum*secTotal;

    return day + " dage " + hour + " timer " + min + " minutter " + sec + " sekunder";
}
Avatar billede askhoej Praktikant
01. september 2006 - 15:46 #6
Det ser ud til at virker perfekt - smider du et svar :-)
Avatar billede nielle Nybegynder
01. september 2006 - 16:55 #7
Svar :^)
Avatar billede nielle Nybegynder
11. september 2006 - 21:20 #8
Så mangler du bare at acceptere svaret :^)
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

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