#1 2009.08.10 01:19

Logout
Участник
Зарегистрирован: 2009.08.10
Сообщений: 22
Карма: 0
Профиль

Подсчет кол-ва времени онлайн

Подскажите как подсчитать время онлайн проведенное пользователем на сайте!?

Отредактировано Logout (2009.08.10 01:22)

Неактивен

#2 2009.08.10 01:54

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

врубаешь сессию и камон.

Неактивен

#3 2009.08.10 02:14

Logout
Участник
Зарегистрирован: 2009.08.10
Сообщений: 22
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

То, что подсчет идет через сессию - понимаю. Меня интересует как высчитать время, с помощью каких функций? Gemorroj, наведи небольшой пример!

Неактивен

#4 2009.08.10 12:10

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

с помощью  функций плюс и минус))
ну записываеш в сессию текущий таймштамп, пользователь переходит на др страницу, ты берешь текущий таймштамп и вычитаешь из него тот записанный таймшамп. плучается время которое человек провел на сайте.

Неактивен

#5 2009.08.10 13:58

Logout
Участник
Зарегистрирован: 2009.08.10
Сообщений: 22
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

Нифига не понял. На сайте есть какой-нибудь скрипт который ведет подсчет этот?

Неактивен

#6 2009.08.10 14:18

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

нету. потому как этот скрипт занимает пару строчек кода.

Код:

1
2
3
4
5
6
session_start();
$time = time();
$_SESSION['timeOnline'] += $time - (isset($_SESSION['timestamp']) ? $_SESSION['timestamp'] : $time);
$_SESSION['timestamp'] = $time;
 
echo 'вы на саейте '.$_SESSION['timeOnline'].' секунд';

Неактивен

#7 2009.08.10 15:04

Logout
Участник
Зарегистрирован: 2009.08.10
Сообщений: 22
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

Gemorroj, благодарю. А как быть с "жизнью" сессии? Или он подсчитывает только время между переходами. Т. е. что будет если пользователь не разорвет сессию самостоятельно, будет ли ему начисляться время онлайн, до того как сессия разрушится сама?

Неактивен

#8 2009.08.10 15:14

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

естественно будет.

Неактивен

#9 2009.08.22 19:27

MarkUS
Участник
Откуда: Eburg
Зарегистрирован: 2009.04.12
Сообщений: 20
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

А как это время еще по минутам и часам разбить?

Неактивен

#10 2009.08.22 21:52

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

Неактивен

#11 2009.08.25 22:34

MarkUS
Участник
Откуда: Eburg
Зарегистрирован: 2009.04.12
Сообщений: 20
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

Спс Геморой..! smile Кое-как разобрался... smile Вот если кому нада... Разбивка по секундам, минутам и часам...

Код:

1
span style="color: #0000BB"><?php$tm = date("H:i:s", $_SESSION['timeOnline'] - 10800);print $tm;?>

Неактивен

#12 2009.11.18 23:48

Namik
Участник
Откуда: Санкт
Зарегистрирован: 2009.11.18
Сообщений: 8
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

Gemorroj, я вот сделал как тут все описано но у меня доходит до 23:59:59 и время в БД снова перезаписываеться на 00:00:00. Что делать, как подсчитывать много часов. например 145:34:15

Неактивен

#13 2009.11.19 00:17

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

тебе нужно записывать число секунд, а не время.

Неактивен

#14 2009.11.19 02:29

Namik
Участник
Откуда: Санкт
Зарегистрирован: 2009.11.18
Сообщений: 8
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

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:30)

Неактивен

#15 2009.11.19 08:47

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

тебе не нужно использовать date. разбивай полученные секунды вручную.

Неактивен

#16 2009.11.19 17:45

Namik
Участник
Откуда: Санкт
Зарегистрирован: 2009.11.18
Сообщений: 8
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

Пдскажите, пожалуйста, как это сделать..!?

Неактивен

#17 2009.11.19 19:05

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Подсчет кол-ва времени онлайн

Код:

1
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 2009.11.19 19:25

Namik
Участник
Откуда: Санкт
Зарегистрирован: 2009.11.18
Сообщений: 8
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

Блин .. а куда мне подставлять мой $db['timeon']? чтобы просчитало?

Неактивен

#19 2009.11.19 20:15

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Re: Подсчет кол-ва времени онлайн

$int = 86820; сюда

Неактивен

#20 2009.11.21 15:58

Vampisja
Участник
Зарегистрирован: 2009.11.04
Сообщений: 56
Карма: 0
Профиль

Re: Подсчет кол-ва времени онлайн

Вот $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 это строка где хранятся секунди

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.016 s