eunix
22.12.2006, 14:15:19
Witam,
Pisze klase do obsługi sesji, chce zrobić coś takiego, że w tabeli sessions bedą przetrzymywane długości sesji danego usera.
Czyli przy każdym odświeżeniu strony, tabela będzie edytowana (odpowiedni rekord) i będzie dodawany czas jaki minął, od ostatniego odświeżenia.
Kombinuje sobie z funkcją time(), ale wychodzą mi bardzo dziwne czasy jak to wyświetlam w funkcji date().
Proszę o pomoc i podpowiedzi.
Pozdrawiam
sobieh
22.12.2006, 14:52:23
przy zalogowaniu do systemu pobierz sobie czas time(); i zapisz do bazy.
pozniej pobierasz czas z bazy i wkladasz do np. $czas
$zalogowany_od = time() - $czas;
// zwroci czas od jakiego ktos jest zalogowany w Sekundach.
$minuty = $zalogowany_od / 60;
// pokaze od ilu minut
$godziny = $minuty / 60;
// pokaze od ilu godzin
przy wylogowaniu / zakonczeniu sesji
zapisz w bazie czas jako time() ... pozniej bedziesz mogl go pobrac jako info
kiedy ktos sie ostatni raz zalogowal.
eunix
22.12.2006, 15:23:36
No działa tylko nie wiem czemu jest o godzine do przodu, kod:
<?php
echo '<br /><span style="font-size: 15px;">Zalogowany: ' . date('H:i:s', time() - $row['session_time']) . '</span><br />'; ?>
jak sprawdzam samo $row['session_time'] to czas jest o 2 minuty do tył niż obecny na serwerze.
sobieh
22.12.2006, 16:41:14
moze to ma jakis zwiazaek z GMT+1

<?php
function time2str($time , $format = '%d:%d:%d')
{
$hours = intval($time / 3600
); $minutes = intval(($time - ($hours * 3600
)) / 60
); $seconds = intval($time - ($hours * 3600
) - ($minutes * 60
));
return sprintf($format , $hours , $minutes , $seconds); }
echo time2str
( 123 , 'Zalogowany od %d godzin , %d minut i %d sekund.'); ?>