[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Провел(а) время на сайте
Гость_Дмитрий
Всем привет. У меня такая проблема: Вобще вставил код в нужное место, а он не четко работает, я выяснил причину. И хочу у вас спросить что мне нужно написать чтоб в файл записывались только секунды. Вот собственно код:

if(isset($_SESSION['moves']))
{
$_SESSION['moves']++;
$_SESSION['show_time'] = time() - $_SESSION['start_time'];
}
else
{
$_SESSION['start_time'] = time();
$_SESSION['show_time'] = $_SESSION['moves'] = 0;

}
$time_in_site = $time_in_site + date('s', $_SESSION['show_time'] - 60 * 60 * 3);

где $time_in_site идет запись в файл login.php.
Далее другой скрипт переводит секунды в часы, минуты и секунды.
В том коде который я написал выше ошибка в строке $time_in_site = $time_in_site + date('s', $_SESSION['show_time'] - 60 * 60 * 3); секунды пишуться не так как надо, они бегут.:-( Вобщем короче, хочу узнать сколько времени(общее) провел на сайте пользователь. Вообщем помогите разобраться Пожалуйста.



Спустя 1 час, 59 минут, 51 секунда (31.03.2012 - 21:25) I++ написал(а):
session_start();

if(!isset($_SESSION['first_login_time']))
{
$_SESSION['first_login_time'] = time();
}
else
{
echo 'На сайте: '.get_time_difference(time(), $_SESSION['first_login']);
}

function get_time_difference( $start, $end )
{
if( $uts['end'] >= $uts['start'] )
{
$diff = $start - $end;
if( $days=intval((floor($diff/86400))) )
$diff = $diff % 86400;
if( $hours=intval((floor($diff/3600))) )
$diff = $diff % 3600;
if( $minutes=intval((floor($diff/60))) )
$diff = $diff % 60;
$diff = intval( $diff );
$diff = array('дней'=>$days, 'часов'=>$hours, 'минут'=>$minutes, 'секунд'=>$diff);
$ret_val = '';
foreach($diff as $key => $val)
{
if($val > 0)
{
$ret_val .= ' '.$val.' '.$key;
}
}

return $ret_val;
}
}


Вообще есть какие то встроенные функции, но я давно не смотрел. А найти свои старые наработки не могу, у меня помню были диференсы, для времени и байты 3287472384723 переводит в 1 мб 873 кб 1023 байта =)

Но перекопать 1000к файлов не реально ))

Если есть функция готовая диференса красивая с выводом до секунд запости, в архив кода помещу.

Спустя 9 часов, 24 минуты, 47 секунд (1.04.2012 - 06:50) Guest написал(а):
Твой код показывает 1000 слишнем дней часов минут и т.д. Мне надо чтобы у каждого юзера в анкете было сколько времени он провел на сайте. Двиг у меня на файлах. Есть какойто способ? Я весь гугл перерыл и ни фига ничего не нашел на эту тему.smile.gif:-(Эхххххххх

Спустя 13 часов, 50 минут, 31 секунда (1.04.2012 - 20:40) Гость_Дмитрий написал(а):
Или я что то не так написал?sad.gif Мда........................

Спустя 1 час, 25 минут, 48 секунд (1.04.2012 - 22:06) I++ написал(а):
Цитата (Гость_Дмитрий @ 1.04.2012 - 21:40)
Или я что то не так написал?sad.gif Мда........................

indeed smile.gif

Все работает нормально.

Спустя 51 минута, 20 секунд (1.04.2012 - 22:57) Гость_Дмитрий написал(а):
Нет, у меня в анкете показало 1000 и более дней часов минут и секунд. Может я не туда написал? Вот смотри: к примеру файл login.php в нем вся информация о пользователе. Чтобы время к примеру последнего входа записать, код такой
$last_visit  = $last_visit +date(код);
, вот как мне записать время онлайн?
$time_in_site = $time_in_site + и здесь должен быть какойто код;
, а какой я незнаю придумать. Либо какойто другой способ.

Спустя 14 минут, 36 секунд (1.04.2012 - 23:12) Гость_Дмитрий написал(а):
Вот что твой код выдал: Время Онлайн:
15431 дней 20 часов 11 минут 20 секунд

Спустя 2 часа, 10 минут, 44 секунды (2.04.2012 - 01:23) Гость_Дмитрий написал(а):
Мда программистов тут нет.sad.gif

Спустя 16 часов, 55 минут, 14 секунд (2.04.2012 - 18:18) Гость_Дмитрий написал(а):
Ну кто нибудь поможет? ПОЖАЛУЙСТА!!!!!!!!!!!!!!!!!!& #33;!! Или тут глухо как в танке?

Спустя 4 минуты, 23 секунды (2.04.2012 - 18:22) inpost написал(а):
time() - время в секундах.
Вот и храни разницу time()

Спустя 2 часа, 56 минут, 43 секунды (2.04.2012 - 21:19) Игорь_Vasinsky написал(а):
Цитата
Мда программистов тут нет
mad.gif
ты просто забыл щёлкнуть пальцами..

Спустя 10 часов, 47 минут, 48 секунд (3.04.2012 - 08:07) I++ написал(а):
Цитата (Гость_Дмитрий @ 2.04.2012 - 02:23)
Мда программистов тут нет.sad.gif

Лан не урчи...

Числа, это псевдо-тайм-штамп

Первый вход: 100
Перезагрузил страницу: 200

200 - 100 = 100

Значение в базе: 0
Заносим в базу 0 + 100
Показываем пользователю: 100 (конвертируем секунды в количество времени)

Пользователь вышел.

Первый вход: 500
Перезагрузил страницу: 700

700 - 500 = 200

Заносим в базу 100 + 200
Показываем пользователю: 300 (конвертируем секунды в количество времени)
Пользователь вышел.

Я балдю ты индус.

Спустя 3 часа, 52 минуты, 29 секунд (3.04.2012 - 11:59) Гость_Дмитрий написал(а):
А код трудно написать, да? Спасибо за помощь!:( Досвиданья.

Спустя 7 минут, 5 секунд (3.04.2012 - 12:06) I++ написал(а):
Я не собираюсь использовать свои телепатические способности без крайней необходимости. Так, что я описал в общих чертах логику. Ибо слишком много неизвестных в твоей системе, и эти нюансы я не могу знать.

Цитата
А код трудно написать, да? Спасибо за помощь!:( Досвиданья.


Тыб еще на** бы послал, для полной красоты картины.
В общем сам думай, раз такой гордый.

Спустя 15 часов, 55 минут, 3 секунды (4.04.2012 - 04:01) Гость_Дмитрий написал(а):
Спасибо! Но я и так всю суть сказал. Двиг на файлах. Все данные пишуться в файл.рhр, а другим скриптом отображают анкету. Вот и задал вопрос как записать время в файл сколько онлайн провел. Мне нужин код чтоб в секундах в файл писал или перезаписывал. Код уже стоит который секунды в часы, минуты и сек. переводит. Надо както записать. Например юзер неактивен более 3мин. значит пишем +180сек. А если нет то считаем и записываем.:-)smile.gif Эх. Бошка кругом.sad.gif Извените если обидел чем то. Вырвалось.

Спустя 1 день, 4 часа, 47 минут, 55 секунд (5.04.2012 - 08:49) Гость_Дмитрий написал(а):
Мда, форум глухой. А гугл еще на 1 место его впихнул.:-(

Спустя 3 дня, 16 часов, 55 минут, 13 секунд (9.04.2012 - 01:45) Гость_Дмитрий написал(а):
Вас дождешься блин, мучался долго но нашел вариант. Вот код:
if(isset($_SESSION['moves']))
{
$_SESSION['moves']++;//считает переходы
$time_site = $_SESSION['show_time'] = time() - $_SESSION['start_time'];//запись время в секундах
}
else//если неактивен, то оновляем и перезаписываем
{
$time_in_site = $time_in_site + $time_site;//пишем юзеру в анкету время(например файл: login.php)
$_SESSION['start_time'] = time();//обнуляем на ноль
$_SESSION['show_time'] = $_SESSION['moves'] = 0;//обнуляем на ноль
}

где $time_site пишеться тоже в анкету пользователя, а $time_in_site должен отображать скрипт который переводит секунды в часы, минуты и секунды.
Модеры тему можна крыть, код рабочий. Новичок не справиться.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.