Avatar billede budda Nybegynder
12. september 2002 - 08:35 Der er 24 kommentarer og
1 løsning

Tæller tiden

Jeg søger et script hvor jeg kan angive nogle variabler og så tæller den hvor lang tid der er gået..
Det jeg mener er.
Jeg vil kunne sætte hvor mange timer,minutter,sekunder man har været online på siden, som bliver genereret med PHP.
Så vil jeg så lave en funktion så de kan se hvor længe de har været online, noget i stil med et ur.
Hvor der skal stå [timer] timer, [min] minutter, [sek] sekunder..
En der kan hjæle mig med JavaScript delen ?
Avatar billede o-zone Nybegynder
12. september 2002 - 09:28 #1
Hvad med noget i stil med:
---8<----------
<html>
<body onLoad="koerTimer(); return true;">
<script language=javascript>
    var sekOnline = 0, minOnline = 0, timerOnline = 0;
    function koerTimer(){
        sekOnline++;
        if (sekOnline>59) { sekOnline = 0; minOnline++; }
        if (minOnline>59) { minOnline = 0; timerOnline++; }
        document.forms[0].elements[0].value = timerOnline+((timerOnline!=1)?" timer, ":" time, ")+minOnline+((minOnline!=1)?" minutter, ":" minut, ")+sekOnline+((sekOnline!=1)?" sekunder.":" sekund.");
        setTimeout("koerTimer()",1000);
    }
</script>
<form>
<input type=text size=30>
</form>
</body>
</html>
---8<----------

Hvordan du vil præsentere det på siden må du selv om. Jeg har bare klasket det i et textfelt, hvilket er pisse nemt, men imho ikke særlig kønt. Anyway, du har tiden i variablene timerOnline, minOnline og sekOnline, og kan som det sidste i funktionen koerTimer() inden
setTimeout("koerTimer()",1000);
bruge dem til at sætte hvad pokker du nu vil op.
:)
Avatar billede budda Nybegynder
12. september 2002 - 09:33 #2
Jeg vil gerne have det vist som tekst i et span hvis det er muligt ??
Avatar billede Slettet bruger
12. september 2002 - 17:27 #3
Sådan her (?):

<html>
<head>
<script>
tid = new Date(2002, 8, 12, 17, 15, 0); //Datoen, der skal tælles fra. år, måned, dag, time, minut, sekund. Månednummeret skal være én mindre!

function tael() {
nu = new Date();
forsk = nu.getTime() - tid.getTime();
if (forsk < 0) {
alert("AAAAAAAAAAAAAAAAAAAAAAAAAAAARGH!");
return;
}
tim = Math.floor((forsk % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
min = Math.floor(((forsk % (1000 * 60 * 60 * 24)) % (1000 * 60 * 60)) / (1000 * 60));
sek = Math.floor((((forsk % (1000 * 60 * 60 * 24)) % (1000 * 60 * 60)) % (1000 * 60)) / 1000);
str = tim + ((tim == 1) ? " time, " : " timer, ") + min + ((min == 1) ? " minut, og " : " minutter, og ") + sek + ((sek == 1) ? " sekund." : " sekunder.");
if (document.getElementById)
document.getElementById("klok").innerHTML = str;
else if (document.all)
document.all.klok.innerHTML = str;
else if (document.layers)
document.nsklok.document.write(str);
setTimeout(tael, 1000);
}
</script>
</head>
<body onLoad="tael();">
<div id="klok" style="color: gray; font-family: Arial; background-color: lightyellow; width: 300px;">
<layer id="nsklok" style="color: gray; font-family: Arial; background-color: lightyellow; width: 300px;">
</layer>
</div>
</body>
</html>
Avatar billede budda Nybegynder
12. september 2002 - 18:10 #4
Nej den skal virke som den anden så jeg kan angive hvor mange sek der er gået og hvor mange min der er gået..

Men jeg kan nok bruge det...
Avatar billede Slettet bruger
12. september 2002 - 18:13 #5
Ja, og det skriver du så bare ud i denne linje:

tid = new Date(2002, 8, 12, 17, 15, 0);

Altså den aktuelle dato minus online-tiden. Bruger du PHP?
Avatar billede budda Nybegynder
12. september 2002 - 18:48 #6
ja..
Avatar billede budda Nybegynder
13. september 2002 - 13:41 #7
Af en eller anden grund vil den ikke virke med PHP..
Hvis jeg fyrer denne af :
tid = new Date(<? echo date("Y",$getdif); ?>, <? echo date("n",$getdif); ?>, <? echo date("d",$getdif); ?>, <? echo date("H",$getdif); ?>, <? echo date("i",$getdif); ?>, <? echo date("s",$getdif); ?>);

og $getdif er en var på et tidspunkt som er ca 2 min før nu

Noget jeg gør galt der??
Avatar billede Slettet bruger
13. september 2002 - 15:14 #8
Ja. Som jeg skriver, skal månednummeret være én mindre.
Avatar billede Slettet bruger
13. september 2002 - 15:29 #9
Prøv følgende i stedet:

tid = new Date(<? echo date("Y", $getdif); ?>, <? echo ($getdif["mon"] - 1); ?>, <? date("d, G, i, s", $getdif); ?>);

Eller dette:

tid = new Date("<? date("F d, Y H:i:s", "$getdif); ?>");
Avatar billede Slettet bruger
13. september 2002 - 15:29 #10
Hov:

tid = new Date("<? date("F d, Y H:i:s", $getdif); ?>");
Avatar billede Slettet bruger
13. september 2002 - 15:30 #11
Ups igen, jeg mangler at echoe begge steder:

tid = new Date(<? echo date("Y", $getdif); ?>, <? echo ($getdif["mon"] - 1); ?>, <? echo date("d, G, i, s", $getdif); ?>);

... og:

tid = new Date("<? echo date("F d, Y H:i:s", $getdif); ?>");
Avatar billede budda Nybegynder
13. september 2002 - 21:41 #12
prøver jeg lige hehe...

<-- lær at læse
Avatar billede budda Nybegynder
13. september 2002 - 21:53 #13
Den stemmer ikke helt..
Den siger at der er gået 22 timertil at starte med :/ ??
Avatar billede budda Nybegynder
13. september 2002 - 21:56 #14
sorry min fejl !!
Avatar billede budda Nybegynder
15. september 2002 - 12:15 #15
Den bliver ved med at sige ARRRRGGHHH lige gyldig hvad :/
Den har virket få gange....
Avatar billede Slettet bruger
15. september 2002 - 12:19 #16
Smid et link. Du skriver datoen forkert ud på én eller anden måde.
Avatar billede budda Nybegynder
15. september 2002 - 17:08 #17
www.thebeat.dk
--> login
->bruger : asdasd
->password : asdasd
--> Chat
Avatar billede Slettet bruger
16. september 2002 - 15:48 #18
Du udskriver den aktuelle tid, ikke online-tiden. Og da dit ur (og mit) er en smule hurtigere en serverens ur, vil scriptet skrige en fejlmelding!
Avatar billede budda Nybegynder
16. september 2002 - 17:07 #19
Ja jeg skriver ikke den aktuelle tid.
Jeg skriver det sidspunkt man logger på chatten.

Men kunne jeg ikke så sætte nu til et spicielt tidspunkt ??
Som også reloader ???
Avatar billede Slettet bruger
16. september 2002 - 17:09 #20
Jo, du skriver den aktuelle tid. Når man højreklikker, vælger "refresh" og kigger i kildekoden på den nyindlæste side, så er tidspunktet lige med det aktuelle.
Avatar billede budda Nybegynder
16. september 2002 - 17:30 #21
fattede jeg så ikke :/
Kan du ikke lige give et eks ??
Avatar billede budda Nybegynder
17. september 2002 - 16:44 #22
altså vil du have nu til at være lig med date ???
Avatar billede Slettet bruger
17. september 2002 - 17:25 #23
Du kan godt sætte nu til at være lig med date. Men det vil ikke særligt meget, hvis dit computer-ur går bare nogenlunde rigtigt!

Nej, jeg vil have, at du giver tid den rigtige værdi. I øjeblikket er tid bare lig med det aktuelle tidspunkt. Det skal det ikke være. Tid skal være lige med det aktuelle tidspunkt minus online-tiden.
Avatar billede Slettet bruger
17. september 2002 - 17:25 #24
men det vil ikke særligt meget = men det vil ikke ændre særligt meget
Avatar billede Slettet bruger
17. september 2002 - 17:26 #25
Det er nok en god idé at sætte nu til at være lige med date.
Men tid er vigtigst!
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

IT-JOB

Capgemini Danmark A/S

AI Data Architect

Capgemini Danmark A/S

Java Engineer

Erhvervsakademi København

Eksterne lektorer inden for IT-sikkerhed

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Sektionschef for Facility Management til Forsvarets nye Digital Backbone