Avatar billede michaeltryl Seniormester
05. februar 2007 - 15:27 Der er 8 kommentarer og
1 løsning

finde tid før og efter f.eks kol 12:00:00

hvis jeg f.eks har disse to tider gemt i en mysql database (datetime)

logget_ind = 2007-02-05 11:40:14
ontid = 2007-02-05 13:40:14

er der så en nem måde at finde ud af hvor mange sekunder brugeren var på før kl. 12 og hvor mange sekunder efter kl. 12
i dette eksempel
$for = 1186 sekunder
$efter = 6014 sekunder

håber der er en rimelig nem måde at gøre dette på
Avatar billede jakobdo Ekspert
05. februar 2007 - 16:12 #1
Gem tiden som unix_timestamp()
Det er et format som gemmer i sekunder.
Avatar billede michaeltryl Seniormester
05. februar 2007 - 16:24 #2
ja det har jeg også siddet og leget lidt med, men kan ikke finde ud af hvordan jeg regner ud hvor lang tid før og efter kl. 12
2007-02-05 11:40:14 er tiden hvor brugeren logger på
ontid = 2007-02-05 13:40:14 er log af tid

så skal jeg have antal sekunder før og efter f.eks kl. 12
Avatar billede jakobdo Ekspert
05. februar 2007 - 16:28 #3
Du kan bruge mktime() til at lave en unix_timestamp()
Har du kigget på http://www.php.net/mktime
Avatar billede michaeltryl Seniormester
05. februar 2007 - 17:28 #4
jeg har nu siddet og forsøgt lidt frem og tilbage, men mit resultat bliver forkert.

$ind_d = "04";
$ind_m = "02";
$ind_aa = "2007";
$logget_ind ="2007-02-05 11:40:14";
$logget_ud ="2007-02-05 13:40:14";

$logget_ind =strtotime($logget_ind);
$logget_ud =strtotime($logget_ud);

$time = mktime(12, 00, 00, $ind_m, $ind_d,$ind_aa);


$for = $logget_ind - $time;
$efter = "";

echo"$time<br>";
echo"$logget_ind<br>";
echo"$logget_ud<br>";
echo"$for<br>";

$for skulle gerne være sekunder fra $logget_ind frem til kl. 12, men jeg får resultatet 85214
mine echo's er sådan

1170586800
1170672014
1170679214
85214

måske du kan give mig et sparke i den rigtige retning
Avatar billede michaeltryl Seniormester
05. februar 2007 - 17:36 #5
måske det vil hjælpe dig at vide hvad det skal bruges til.
Jeg har et bruger system hvor brugerne får 1 point for hvert minut de er logget ind.
ideen er så at hvis der er logget på mellem kl.18:00:00 og 00:00:00 skal de have dobbelt point, altså 2 point pr. minut.
Avatar billede jakobdo Ekspert
05. februar 2007 - 18:53 #6
Prøv at se dette eksempel:

<?php
//http://www.eksperten.dk/spm/760602

$d = 5;
$m = 2;
$y = 2007;

$login_date  = "2007-02-05 11:40:14";
$logout_date = "2007-02-05 13:40:14";

$login_unix  = strtotime($login_date);
$logout_unix = strtotime($logout_date);

$time = mktime(12, 00, 00, $m, $d,$y);

if($login_unix < $time)
{
    $login_sec = $time - $login_unix;
}
else
{
    $login_sec  = $login_unix - $time;
}
if($logout_unix < $time)
{
    $logout_sec = $time - $logout_unix;
}
else
{
    $logout_sec  = $logout_unix - $time;
}

echo $login_date.'<br />';
echo 'Sekunder: '.$login_sec.'<br />';
echo 'Minutter: '.floor($login_sec/60).'<br />';

echo $logout_date.'<br />';
echo 'Sekunder: '.$logout_sec.'<br />';
echo 'Minutter: '.floor($logout_sec/60).'<br />';

?>
Avatar billede michaeltryl Seniormester
05. februar 2007 - 19:58 #7
det ser ikke dumt ud. Jeg har lige testet det du postede her og det virker fint. jeg tror ikke det bliver noget problem at putte det ind i mit nuværende script så bare smid et svar.
Mange tak for hjælpen
Avatar billede jakobdo Ekspert
05. februar 2007 - 20:00 #8
Svar!
Avatar billede jakobdo Ekspert
05. februar 2007 - 21:01 #9
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