Witam

Sprawa wygląda tak. Za każdym razem, gdy użytkownik odpala grę - jeszcze przed zalogowaniem na serwer, pobiera się ostatni czas zalogowania - chodzi mi dokładnie o ten moment. Na stronie wyświetlam listę graczy online, a także ich czas gry i niestety w momencie, w którym użytkownik się jeszcze nie zaloguje pobiera właśnie ten ostatni rekord (ostatnia data zalogowania zapisana jako int). Wychodzi dziwny wynik, przykładowo - czas gry: -10godzin. Zastanawiam się w jaki sposób można to rozwiązać.

Kod wygląda następująco:

  1. $query = $db->query("SELECT p.*,l.* FROM gracze p, logs l WHERE p.Name='".$player['name']."' AND p.id=l.userid ORDER BY l.id DESC LIMIT 1");
  2.  
  3. $char = $db->fetch_array($query);
  4. $date_now = date('His');
  5. $time = date('His',$char['time']);
  6. $cuid = $char['uid'];
  7.  
  8. function time_online($time, $date_now, $time_unit="sekund")
  9. {
  10. $tablica = array(m=>60, h=>3600, dni=>86400, sekund=>1);
  11. $result = "<strong>".round(((strtotime($date_now) - strtotime($time)) / $tablica[$time_unit]))."</strong>".$time_unit;
  12. return $result;
  13. }
  14.  
  15. $timeplayed = time_online($time, $date_now, "h")." ". $lang->val_and ." " .time_online($time, $date_now, "m");


Mam nadzieję, że dosyć jasno to wyjaśniłem. Będę wdzięczny za jakąkolwiek pomoc.


Ponawiam prośbę o pomoc.