вот функция PHP: function time_left($tl) { $d=3600*24; $day=floor($tl/$d); $tl=$tl-($d*$day); $hour=floor($tl/3600); $tl=$tl-(3600*$hour); $minute=floor($tl/60); $tl=$tl-(60*$minute); $second=floor($tl); $dayt="".($day>0?"$day д. ":null).""; $hourt="".($hour>0?"$hour ч. ":null).""; $minutet="".($minute>0?"$minute м. ":null).""; $secondt="".($second>0?"$second с. ":null).""; if($day>0) { $minutet=NULL; $secondt=NULL; } if($hour>0 && $day==0) { $secondt=NULL; $dayt=NULL; } return "$dayt$hourt$minutet$secondt"; } PHP: echo "<li><img src='images/icons/chasi.gif'> Время онлайн: <span class='title'>".time_left($ank['time'])."</span></li>"; Подскажите как сделать что б работало на другом скрипте а именно как реализовать запись в бд
Как вариант отсылайте от клиента постоянно аякс запросы, каждые 3-5 секунд. Записывайте во время каждого запроса, в таблицу с пользователем тек дату и время в юникс формате. И когда проверяете кол-во активных пользователей сравниваете его дату активности с текущем временем за минусом например 10-15 секунд. Ну и собственно всё.
Делаешь у таблицы пользователей два поля: firstQueryTime, lastQueryTime При каждом запросе проверяешь: если у пользователя firstQueryTime ещё не записан, пишешь туда время запроса. Если уже записан, пишешь в lastQueryTime Таким образом lastQueryTime - firstQueryTime = время на сайте online На крон вешаешь скрипт, который обнуляет оба поля для всех пользователей, которые не запрашивали страницы сайта, ну, к примеру, минут 10, считаешь, что они значит ушли с сайта. Код за тебя писать не буду.
Не нужно фиксировать каждое обращение. Обычно покидание пользователем ресурса фиксируется с большой погрешностью, например 5 мин, а фиксация выполняется к примеру только в последние 4 мин, после кот. дается передышка на 1 мин.