session start i end to aktualny timestemp
Maksymalny czas trwania sessji to 23:59 H
Pytanie mam takie jak najlepiej napisać skrypt który pokazuje użytkownika najdłużej online w aktualnym dniu i ile sekund spędził. Umiał bym to zrobić jeśli sesje zaczynały by się w danym dniu i kończyły w tym samym. lecz użytkownik może zalogować się o 23:00 i być do 4 po czym wejść o 6 o być do 10
Dziękuje z góry za każdą pomoc w naprowadzeniu mnie na rozwiązanie
w ten sposób pobieram zakres daty dla danego dnia
wymyśliłem coś takiego:
$x = mysql_query("SELECT user_id, session_start, session_end FROM users_sessions WHERE (session_start>='$toDayStart' OR session_end>='$toDayStart')"); $user_id = $xx['user_id']; $session_start = $xx['session_start']; $session_end = $xx['session_end']; if($session_start>=$toDayStart){ if($toDayEnd>=$session_end){ $count = $session_end-$session_start; $online[$user_id] = $count; } else{ $session_end=$toDayEnd; $count = $session_end-$session_start; $online[$user_id] = $count; } } elseif($session_end>=$toDayStart){ if($session_start>=$toDayStart){ $count = $session_end-$session_start; $online[$user_id] = $count; } else{ $session_start=$toDayStart; $count = $session_end-$session_start; $online[$user_id] = $count; } } }
czy to dobrze policzy ilość sekund spędzonych na stronie czy może jakiś logiczny błąd zrobiłem ?, dodanie z rozpoczętej sesji to pikuś wiec nawet nie pisze na razie.