Avatar billede filename Nybegynder
07. november 2004 - 22:31 Der er 17 kommentarer og
1 løsning

Tid i php?

Hej, jeg vil udskrive en onlinetid folk har været online i, men den kokser lidt, den siger de har 305517 timer, 27 minutter.

Når man logger ind laver jeg en:

<?php
$tid = time();
mysql_query("UPDATE brugere SET timeout = '$tid', online = 'ja' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error())
?>


Når de logger ud laver jeg en:
<?php
//connecting osv. her op..

$tid = time();
$timeout = $online[timeout];
$minus = $tid-$timeout;
$ol = $online[timeout];
$plus = $minus+$ol;

mysql_query("UPDATE brugere SET timer = '$plus' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
?>

Og når det skal udskrives:

<?
$hour2 = $row['timer']/3600;
$hour = floor($hour2);
$min = floor(($hour2-$hour)*60);
if($min < 10)$min = "0".$min;
?>

<?php echo "$hour timer, $min minutter."; ?>

Der mangler en del i koderne, men det er det som er inholdet fra timesystemet, der er noget jeg gør gjaldt men hvad? :-s
Avatar billede filename Nybegynder
07. november 2004 - 22:34 #1
Det skal lige siges at ved logud er $online den som tager fra brugere af..

altså nornalt laver men $row men min er $online
Avatar billede filename Nybegynder
07. november 2004 - 22:37 #2
ved

$tid = time();
$timeout = $online[timeout];
$minus = $tid-$timeout;
$ol = $online[timeout];
$plus = $minus+$ol;

er det
$ol = $online[timer];


istedet
Avatar billede filename Nybegynder
07. november 2004 - 22:40 #3
Spg nummer /559000 =)
Avatar billede filename Nybegynder
07. november 2004 - 22:43 #4
Fandt selv ud af det:) undskyld jeg oprettede spg.
Avatar billede filename Nybegynder
07. november 2004 - 23:13 #5
Nej, virkede ikke aligevel.. En eller anden som kan, får self. points i et nyt spg, hvor der står point til 'navnet' :)
Avatar billede Slettet bruger
08. november 2004 - 00:22 #6
Du tager det forkerte tal her:

$ol = $online[timeout];

Det skulle nok have været

$ol=$online['timer']

Derudover, så husk '' om feltnavnene i arrays. PHP plejer at gætte hvad du mener, men det kan skabe fejl, som er meget svære at opdage, når de mangler.
Avatar billede filename Nybegynder
08. november 2004 - 00:34 #7
Virker dog ikke. :(
Avatar billede Slettet bruger
08. november 2004 - 00:43 #8
Prøv at lave udskriften om til:

<?
$hour2 = $row['timer']/3600;
$hour = floor($hour2);
$min = floor(($hour2-$hour)*60);
if($min < 10)$min = "0".$min;
?>

<?

$sek=$row['timer'] % 60;
$min=($row['timer']-$sek) % 3600;
$hour=($row['timer']- $sek - ($min * 60))/3600;

echo "$hour timer, $min minutter, $sek sekunder."; ?>
Avatar billede Slettet bruger
08. november 2004 - 00:43 #9
Øh. Jeg mente kun

<?

$sek=$row['timer'] % 60;
$min=($row['timer']-$sek) % 3600;
$hour=($row['timer']- $sek - ($min * 60))/3600;

echo "$hour timer, $min minutter, $sek sekunder."; ?>
Avatar billede filename Nybegynder
08. november 2004 - 00:51 #10
når den runder over 60 sek, udskriver den..

-0.983333333333 timer, 60 minutter, 1 sekunder.
Avatar billede filename Nybegynder
08. november 2004 - 00:53 #11
sekunder virker =)
Avatar billede filename Nybegynder
08. november 2004 - 00:53 #12
Men ikke minutter den og timerne.
Avatar billede filename Nybegynder
08. november 2004 - 00:56 #13
Og, over de 120 så siger den

-1.96666666667 timer, 120 minutter, 57 sekunder.
Avatar billede filename Nybegynder
08. november 2004 - 01:21 #14
Er du der?
Avatar billede Slettet bruger
08. november 2004 - 01:29 #15
<?

$tid=$row['timer'];

$sek=$tid % 60;
$tid=($tid-$sek)/60;

$min=$tid % 60;
$hour=($tid-$min)/60;

echo "$hour timer, $min minutter, $sek sekunder."; ?>
Avatar billede Slettet bruger
08. november 2004 - 01:31 #16
Og nu smutter jeg for i aften, så hvis det ikke virker, vil jeg først reagere i morgen engang. Måske først til aften.
Avatar billede filename Nybegynder
08. november 2004 - 13:10 #17
sandbox - Det virker næsten..

Jeg har lavet en online.php som automatisk opdater timerne hele tiden.
Men det passer ikke, et sekundt gælder for ca. 5 sek.

Altså man får flere timer heletiden..

Min kode:


<?
session_start();

include 'db.php';
$res = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[brugernavn]'");
while($online = mysql_fetch_array($res)) {

$tid = time();
$timeout = $online['timeout'];
$minus = $tid-$timeout;
$ol = $online['timer'];
$plus = $minus+$ol;

mysql_query("UPDATE brugere SET timer = '$plus' WHERE brugernavn = '$_SESSION[brugernavn]'") or die(mysql_error());
?>
<?php } ?>

<body onload='loadet();'>
<script>
function loadet() {
setTimeout("location.reload(true)",3000);
}
</script>
Avatar billede filename Nybegynder
08. november 2004 - 19:59 #18
En der finder fejlen?
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