Avatar billede minimadsens Nybegynder
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. :)
Avatar billede jakobdo Ekspert
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.
Avatar billede minimadsens Nybegynder
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" ?
Avatar billede jakobdo Ekspert
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...
Avatar billede minimadsens Nybegynder
08. november 2007 - 18:26 #4
Kan du eventuelt komme med et "formel" på det? :P :P

Ville være virkelig dejligt. :D :D
Avatar billede jakobdo Ekspert
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 />';

?>
Avatar billede minimadsens Nybegynder
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?
Avatar billede minimadsens Nybegynder
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
Avatar billede minimadsens Nybegynder
08. november 2007 - 19:05 #8
Dette burde virke ikke:

$timer    = floor((($online2 % 3600) / 60) / 60);

?
Avatar billede jakobdo Ekspert
08. november 2007 - 19:19 #9
Din kode der, burde ikke virke nej.
Det er ihf. ikke timer som bliver tilbage.
Det ligner sekunder!
Avatar billede minimadsens Nybegynder
08. november 2007 - 19:24 #10
Kan du så forklarer hvorfor den viser så mange timer. :S

For jeg ved det ikke?
Avatar billede minimadsens Nybegynder
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
Avatar billede jakobdo Ekspert
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..
Avatar billede minimadsens Nybegynder
09. november 2007 - 16:01 #13
okay. :D

Det virker fint. :)
Avatar billede jakobdo Ekspert
09. november 2007 - 16:07 #14
Takker for point.
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