14. december 2004 - 18:18Der er
4 kommentarer og 1 løsning
Online tid - time() problem
Hej Eksperter.
Jeg er ved at prøve at lave et script, som tæller en brugeres online tid. Altså når en bruger logger ind på mit site, blir time(); gemt på det tidspunkt han logger ind. Så for hvergang han laver en side visning, skal denne tid opdateres ved at bruge den nuværende time(); Altså man stiller time(); fra han var logget ind op mod time(); på side visningen.
Har aldrig rigtig "leget" med time(); så har prøvet mig frem for sjov, og kom frem til følgende kode:
echo "Unix tider trukket fra hinanden: ".$betweenunix.""; echo "<br><br>"; echo "Unix i date format: ".$dateunix."";
Dette fungere udenmærket, men mit problem er... jeg vil også gerne vise timerne.
Men hvis jeg laver: $dateunix = date("H:i:s", $betweenunix);
Så skriver den automatisk "hour" til en time. Hvilket jo ikke passer. Nogen som har et færdiglavet script, eller som evt. lige kan komme på et "fix" til mit lille "nybegynder-time();-script" ? :)
Jeg ville slet ikke bruge date() til at omregne min tid til den tid-format du ønsker.
Jeg ville i stedet beregne det matematisk. time() er jo i sekunder, så differencen på $unixtime og $unixnow vil jo også være i sekunder.
Så kunne du f.eks. beregne det sådan her:
<?php $diff = $betweenunix; // Jeg ville selv kalde den $diff og ikke $betweenunix $hours = floor($diff / (60 * 60)); $minutes = floor(($diff - ($hours * (60 * 60)) / 60); $seconds = $diff - ($hours * (60 * 60)) - ($minutes * 60); ?>
Hvis du så selv ønsker det, kan du jo også vælge at beregne om brugeren har været online i dage. I mit tilfælde vil der blot blive skrevet f.eks. 26 timer og 53 minutter, og ikke 1 dag, 2 timer og 53 minutter :)
sådan... nu er den helt rigtig :) Jeg havde ikke sat et ( for meget med... men et ) for lidt med ;)
Hygge!
Synes godt om
Ny brugerNybegynder
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.