08. november 2007 - 17:27
Der er
13 kommentarer og 1 løsning
Evt. færdigt script til at se online tid på brugere?
er ved at lave et script til at man kan se hvor lang tid brugere har været online, men da jeg kom til den vigtigeste del med at uploade tiden til databasen, blev jeg lidt usikker. :P For hvilken tid skal man uploade? Altså, hvad skal jeg sætte dette til? : $time = time("H:i:s"); Skal den stå til H:i:s, eller måske bare His , og så skal man senere sætte ind i mellem hvad man nu vil? Hvis nogen har et færdigt script til dette, vil jeg gerne se det, for så kan jeg måske bare kigge lidt efter der, og lærer ud fra det. :)
Annonceindlæg fra Immeo
08. november 2007 - 17:31
#1
Smider du data i mysql? Hvis ja, så kunne du overveje at bruge dato_felt_i_database = NOW() Eller også bare smide time() ind i et database felt.
08. november 2007 - 17:38
#2
bruger mysql jah.. :) men hvis jeg bare smider time() ind, hvordan får jeg så et output til min hjemmeside som f.eks siger: "1 time og 5 min og 10 sek" ?? eller i det overstående eks. "1:5:10" ?
08. november 2007 - 18:01
#3
Hvis du smider time() ind, så kan du tage: $antal_sekunder = time() - $tid_fra_database; Og så er det "bare" regne sekunder om til sekunder, minutter, timer, dage, uger osv...
08. november 2007 - 18:26
#4
Kan du eventuelt komme med et "formel" på det? :P :P Ville være virkelig dejligt. :D :D
08. november 2007 - 18:36
#5
Noget i stil med: <?php //http://www.eksperten.dk/spm/804941 //$antal_sekunder = time() - $tid_fra_database; $antal_sekunder = 10232; $timer = floor($antal_sekunder / 3600); $minutter = floor(($antal_sekunder % 3600) / 60); $sekunder = $antal_sekunder % 60; echo 'Timer : ' . $timer . '<br />'; echo 'Minutter : ' . $minutter . '<br />'; echo 'Sekunder : ' . $sekunder . '<br />'; ?>
08. november 2007 - 18:53
#6
Har siddet og eksperimenteret lidt med det nu, med denne kode: $name = $session->username; $query = "SELECT onlinetid, onlinetidialt FROM users WHERE username = '$name' order by username DESC"; $result = mysql_query($query); while($r=mysql_fetch_array($result)) { $time = time(); $online1 = $time - $r[onlinetid]; $online2 = $r[onlinetidialt] + $online1; $timer = floor($online2 / 3600); $minutter = floor(($online2 % 3600) / 60); ?> Online tid: <? echo "$timer timer og $minutter min.";?> <? } ?> Men den kommer med dette resultalt: 331817 timer og 50 min. selvom jeg i databasen har sat "onlinetid" og "onlinetidialt" til at være time() for ca 10 min siden.. :/ kan du se hvorfor?
08. november 2007 - 18:55
#7
tror udregningen for timer er forkert? eller er det bare mig? :S men er ikke den bedste til matematik.. kan du se hvad den ellers skal være så? :S
08. november 2007 - 19:05
#8
Dette burde virke ikke: $timer = floor((($online2 % 3600) / 60) / 60); ?
08. november 2007 - 19:19
#9
Din kode der, burde ikke virke nej. Det er ihf. ikke timer som bliver tilbage. Det ligner sekunder!
08. november 2007 - 19:24
#10
Kan du så forklarer hvorfor den viser så mange timer. :S For jeg ved det ikke?
08. november 2007 - 20:35
#11
Tror måske nok jeg har fået det til at virke nu. :D :D Takker.. :D Kom med et svar, og få point. :D
09. november 2007 - 08:32
#12
Svar! Hvad mener du med: Tror nok? :o) Enten virker det eller også gør det ikke. Husk //$antal_sekunder = time() - $tid_fra_database; giver sekunder. 60 sekunder = 1 minut 3600 sekunder = 1 time osv..
09. november 2007 - 16:01
#13
okay. :D Det virker fint. :)
09. november 2007 - 16:07
#14
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling