Вы не зашли.
Главная » PHP » Подсчет кол-ва времени онлайн
#1. Logout Off (0)
Участник
2009.08.10 01:01
Подскажите как подсчитать время онлайн проведенное пользователем на сайте!?
Отредактировано Logout (2009.08.10 01:01)
#2. Gemorroj Off (107)
Administrator
2009.08.10 01:01
врубаешь сессию и камон.
#3. Logout Off (0)
Участник
2009.08.10 02:02
То, что подсчет идет через сессию - понимаю. Меня интересует как высчитать время, с помощью каких функций? Gemorroj, наведи небольшой пример!
#4. Gemorroj Off (107)
Administrator
2009.08.10 12:12
с помощью  функций плюс и минус))
ну записываеш в сессию текущий таймштамп, пользователь переходит на др страницу, ты берешь текущий таймштамп и вычитаешь из него тот записанный таймшамп. плучается время которое человек провел на сайте.
#5. Logout Off (0)
Участник
2009.08.10 13:01
Нифига не понял. На сайте есть какой-нибудь скрипт который ведет подсчет этот?
#6. Gemorroj Off (107)
Administrator
2009.08.10 14:02
нету. потому как этот скрипт занимает пару строчек кода.
Код:
session_start();
$time = time();
$_SESSION['timeOnline'] += $time - (isset($_SESSION['timestamp']) ? $_SESSION['timestamp'] : $time);
$_SESSION['timestamp'] = $time;
 
echo 'вы на саейте '.$_SESSION['timeOnline'].' секунд';
#7. Logout Off (0)
Участник
2009.08.10 15:03
Gemorroj, благодарю. А как быть с "жизнью" сессии? Или он подсчитывает только время между переходами. Т. е. что будет если пользователь не разорвет сессию самостоятельно, будет ли ему начисляться время онлайн, до того как сессия разрушится сама?
#8. Gemorroj Off (107)
Administrator
2009.08.10 15:03
естественно будет.
#9. MarkUS Off (0)
Участник
2009.08.22 19:07
А как это время еще по минутам и часам разбить?
#10. Gemorroj Off (107)
Administrator
2009.08.22 21:09
http://ru.php.net/date
#11. MarkUS Off (0)
Участник
2009.08.25 22:10
Спс Геморой..! smile Кое-как разобрался... smile Вот если кому нада... Разбивка по секундам, минутам и часам...
Код:
span style="color: #0000BB"><?php$tm = date("H:i:s", $_SESSION['timeOnline'] - 10800);print $tm;?>
#12. Namik Off (0)
Участник
2009.11.18 23:11
Gemorroj, я вот сделал как тут все описано но у меня доходит до 23:59:59 и время в БД снова перезаписываеться на 00:00:00. Что делать, как подсчитывать много часов. например 145:34:15
#13. Gemorroj Off (107)
Administrator
2009.11.19 00:12
тебе нужно записывать число секунд, а не время.
#14. Namik Off (0)
Участник
2009.11.19 02:02
Gemorroj,  я делаю вот так..

$online = time() - $db['online'];
       
       mysql_query("UPDATE u_table SET online=online+$online,timeon=timeon+$online WHERE login='".$db['login']."'");

$db['online']; - в ней содержится последнее время
timeon - здесь времяя онлайн за весь период

А как число секунд записать, я все с помощью time() делаю
Добавлено спустя   4 минуты  14 секунд:
И потом вывожу echo date("H:i:s",$db['timeon']);
Отредактировано Namik (2009.11.19 02:02)
#15. Gemorroj Off (107)
Administrator
2009.11.19 08:08
тебе не нужно использовать date. разбивай полученные секунды вручную.
#16. Namik Off (0)
Участник
2009.11.19 17:05
Пдскажите, пожалуйста, как это сделать..!?
#17. Gemorroj Off (107)
Administrator
2009.11.19 19:07
Код:
span style="color: #0000BB"><?php$int = 86820;$tmp = array( 'days' => 0, 'hours' => 0, 'min' => 0,);$days = explode('.', $int / 86400);if ($days[0] >= 1) { $tmp['days'] = $days[0];}$hours = explode('.', ($int - ($tmp['days'] * 86400)) / 3600);if ($hours[0] >= 1) { $tmp['hours'] = $hours[0];}$min = explode('.', ($int - ($tmp['hours'] * 3600) - ($tmp['days'] * 86400)) / 60);if ($min[0] >= 1) { $tmp['min'] = $min[0];}print_r($tmp);?>
#18. Namik Off (0)
Участник
2009.11.19 19:07
Блин .. а куда мне подставлять мой $db['timeon']? чтобы просчитало?
#19. DarkDaNTe Off (11)
Участник
2009.11.19 20:08
$int = 86820; сюда
#20. Vampisja Off (0)
Участник
2009.11.21 15:03
Вот $hous = floor ($timevremja / 3600);
$mins = floor ($timevremja / 60) -$hous*60;
$secs = $timevremja % 60;
echo "Провел(а) на сайте: <br/>".$hous." ч. ".$mins." мин. ".$secs."сек.<br/>\n";
timevremja это строка где хранятся секунди
Добавлено спустя   1 минуту  3 секунды:
Вот $hous = floor ($timevremja / 3600);
$mins = floor ($timevremja / 60) -$hous*60;
$secs = $timevremja % 60;
echo "Провел(а) на сайте: <br/>".$hous." ч. ".$mins." мин. ".$secs."сек.<br/>\n";
timevremja это строка где хранятся секунди
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.019 s