Avatar billede krydset Nybegynder
21. maj 2004 - 23:56 Der er 22 kommentarer og
1 løsning

trække en time fra

hejsa hvoordan trækker jeg en time fra det her script

$res = mysql_query("SELECT * FROM users_online WHERE ip = '$ip'") or die(mysql_error());
while ($row = mysql_fetch_array($res)) {
    $time = time();
    $ny_tid = $time - $row[login_time];
    echo date("G:i:s", $ny_tid);
       
}

Mvh Thomas
Avatar billede nikolajdu Nybegynder
22. maj 2004 - 00:06 #1
$time = time()-3600;

??
Avatar billede krydset Nybegynder
22. maj 2004 - 08:10 #2
Hvis jeg gør det sådan får jeg flg error (burde måske osse ha skrevet jeg havde prøvet)

Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in c:\www\pc-dk.dk\newvision\admin\sider\user_online.php on line 26
Avatar billede sukos Juniormester
22. maj 2004 - 08:13 #3
?
Måske fordi du får trukket en hel del ud, da du går efter ip?
Men et online script, der ville jeg bruge sessions, og så gemme session_id() i stedet for IP
Avatar billede sukos Juniormester
22. maj 2004 - 08:15 #4
Men prøv en echo $ny_tid så kan du jo se hvad du har at gøre med
Avatar billede krydset Nybegynder
22. maj 2004 - 08:22 #5
Hmm okay jeg kan se fejl nu -2920 og det er jo nok problemet.

Men hvad gør jeg så

time() - $row['login_time'] burde ikke give -tal

og nej jeg får kun en post ud da den søger efter ip og hvis ip findes så skal den bare opdatere time stamp' et
Avatar billede sukos Juniormester
22. maj 2004 - 08:31 #6
$row['login_time'] er vel time() som da der blev logget ind?
Altså burde $row[login_time] jo også være mindre end time()

Men jeg er heller ikke helt med?
Vil du vise online tid, eller update med en ny tid i DB?
Avatar billede sukos Juniormester
22. maj 2004 - 08:32 #7
Den kan jo sagtens finde flere rows med samme ip?
Avatar billede sukos Juniormester
22. maj 2004 - 08:34 #8
Og b.t.w. hvordan sætter tiden første gang?
Avatar billede krydset Nybegynder
22. maj 2004 - 08:34 #9
Okay pt opdatere den ikke tiden.(skal du heller ikke tænke på)

jeg skal vise online tid ud fra time() - $row[login_time]

row[login_time] vil jo være et mindre antal sec end time() da row[login_time] bliver sat når brugeren logger ind

Altså burde det jo ikke give minus tal eller hva ??
Avatar billede krydset Nybegynder
22. maj 2004 - 08:43 #10
while ($row = mysql_fetch_array($res)) {
    $time = time();
    echo "$time<br>";
    echo "$row[login_time]<br>";
    $nytid = $time - $row[login_time];
    echo date("G:i:s", $nytid);
}

Dette giver udskrift
1085208163
1085207975
1:03:08

Men prblemet er at det er en time foran derfor vil jeg trække en time fra med -3600 men det giver fejlen
Avatar billede krydset Nybegynder
22. maj 2004 - 08:44 #11
Og tiden sættes første gang med time()
Avatar billede sukos Juniormester
22. maj 2004 - 08:49 #12
Hvordan en time foran?

Men så kan du jo som nik foreslog, (næsten)

echo date("G:i:s", ($nytid-3600));
Avatar billede krydset Nybegynder
22. maj 2004 - 08:52 #13
hvis jeg kun har været logget in i 5 min så viser det en time og min derfor vil jeg trække den skæve time fra

while ($row = mysql_fetch_array($res)) {
    $time = time();
    $ny_tid = $time - $row[login_time];
    echo date("G:i:s", ($nytid-3600));
       
}

Det her giver stadig fejl

Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in c:\www\pc-dk.dk\newvision\admin\sider\user_online.php on line 26
Avatar billede sukos Juniormester
22. maj 2004 - 09:00 #14
hmm
1085208163-1085207975 = 188 !!!

Så det skulle jo passe meget godt?
Men så er det måden date bruges på!
Avatar billede krydset Nybegynder
22. maj 2004 - 09:02 #15
Jeg fatter ikke hvorfor det er en time foran

$tid = time();
echo date("G:i:s", $tid);

Det gver det rigtige tid

hvorfor bliver det andet skæævt
Avatar billede sukos Juniormester
22. maj 2004 - 09:04 #16
Det er date som ikke virker i dette tilfælde her.
Du skal nok lave noget "manuelt" med at omdanne antal sek. til timer, min, og sek.
Avatar billede sukos Juniormester
22. maj 2004 - 09:05 #17
Jeg får f.eks. også 02.00.00
echo date("H:i:s", 3600);

:O)
Avatar billede sukos Juniormester
22. maj 2004 - 09:07 #18
haha!
sommertid!
Avatar billede krydset Nybegynder
22. maj 2004 - 09:09 #19
Okay har osse noget og ligge jeg er bare ikke meget for at bruge kode som jeg ikke fatter men jeg må læse lidt på lektien

Lig et svar så kan du få lidt som tak for at hjælpe.
Avatar billede sukos Juniormester
22. maj 2004 - 09:12 #20
njah, jeg kom jo ikke med en løsning!
Avatar billede krydset Nybegynder
22. maj 2004 - 09:14 #21
nææ men du prøvede da :-D'


Men jeg nupper dem selv, i hvert fald tak for hjælpen :-P
Avatar billede sukos Juniormester
22. maj 2004 - 09:14 #22
Men du kan jo tjekke om det er sommertid, inden du gememr i DB? måske?
Avatar billede sukos Juniormester
22. maj 2004 - 09:16 #23
hmm, jeg fatter nu heller ikke hvad der foregår?
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