Witam!
napisałem kod, który ma sprawdzać aktywność użytkowników, mam jednak problem z konwersją czasu.
<?php
require_once ('funkcje/polacz_baza.php');
polacz_baza('users');
// pobieranie zmiennych z sesji
require_once ('funkcje/tworz_zmienne.php');
//Uptade aktywności usera
$data = date('Y-m-d H:m:s'); mysql_query('UPDATE dane_postaci SET aktywnosc="'.$data.'" WHERE id_log='.$id.'') or
die ('Nie można zaaktualziować czasu ostatniej aktywności!');
//pobranie userow znajdujacych sie w tym samym miejscu
$query = 'SELECT aktywnosc, id_log FROM dane_postaci WHERE miejsce="'.$miejsce.'"';
//Jeśli nikogo nie ma...
if ($licz_wiersze != 0)
{
//pętla zwracajaca nazwy userów
for ($i=0; $i<$licz_wiersze; $i++)
{
//TU GDZIES JEST PROBLEM
echo('<br /> aktywnosc z db'.$wiersz['aktywnosc']); echo('<br /> czas aktualny'.$data); $aktywnosc = strtotime($wiersz['aktywnosc']); $roznica = $aktualny - $aktywnosc;
echo ('<br /> aktywnosc '.$aktywnosc); echo('<br /> aktualny'.$aktualny); echo ('<br />roznica '.$roznica); $sekundy = $roznica%60;
$minuty_1 = $roznica - $sekundy;
$minuty = $minuty_1/60;
echo ('<br />sek '.$sekundy); echo ('<br />min '.$minuty);
//sprawdzanie czasu aktywnosci
if ($minuty<30)
{
$query2 = 'SELECT login FROM logowanie WHERE id='.$wiersz['id_log'];
$wynik2 = mysql_query($query2) or
die ('Nie można pobrać danych2 z db');
echo ('<p>'.$user[0].' aktywny ostatnio: '.$minuty.'minut temu i '.$sekundy.' sekund temu.');
}
}
}
else
{
echo ('Nikogo tu nie ma'); break;
}
?>
Jak widać skrypt aktualizuje czas aktywności do aktualnej daty, po czym sprawdza każdemu userowi czas aktywności i jeśli jest krótszy niż 30 minut, wyświetla go.
problem w tym, że timestamp daty zaktualizowanej na czas aktualny (pobieranej z mysql'a) jest rożny od timestampa aktualnej daty(generowanej przez php), mimo że data pobrana z MySql wyświetlona w zwykłym formacie jest taka sama jak ta aktualna.
Najlepiej chyba pokazuje to tekst który zwraca skrypt:
Cytat
aktywnosc z db2007-11-21 19:11:22
czas aktualny2007-11-21 19:11:22
aktywnosc 1195668682
aktualny1195668982
roznica 300
sek 0
min 5
Ten post edytował Mikan 21.11.2007, 20:01:34