ОБСУЖДЕНИЕ

Работа со временем

17 сообщений1 просмотровЗакрыта
#1
Вот не могу понять логику (именно логику,а не код), как сделать так что бы делался подщёт сколько пользователь пробыл на сайте, уитывая время только то которое он в онлайне, типа как тут на мастерам
#2
если бы знал помог бы бесплатно))
#3
не понял?
#4
что именно?
#5
Так тут же всё просто)
Если "актуальное" время онлайна больше, чем текущее время, то пишется: новое время плюс текущее время и минус "актуальное" время онлайна. :)
#6
актуальное - это то с которого он зареган?
#7
Bishop, Нет) Ну ты включи же логику свою, если время, с которого зареган - то это уже будет просто подсчет времени со дня регистрации, а не времяпроведения.
"Актуальное" - я имел ввиду то время, которое постоянно пишется в БД когда ты лазиешь по сайту)
#8
спс,и не понял это еще "новое время плюс текущее время"
то делать -

<?php

$time=time();

$times=$time+$time;

?>

Я так понял?
#9
Актуальное время - колонка, по которой ты определяешь кто вообще в онлайне в данный момент.
Текущее время - время из time().
Ну и собственно будет тут как ты уже понял, новая колонка для записи времяпроведения)
#10
Ну смотри, сначала ты проверяешь есть ли пользователь в онлайне в данный момент, чтобы не писать времяпроведения нашару

if ($время_юзера_в_онл > time() - Nсек)
{
$для_записи = $времяпроведение + time() - $время_юзера_в_онл
}
#11
$времяпроведение - обьясни что это ибо я туплю чото)
#12
Ща сек) Постараюсь оформить более информативно
#13
буду признателен, просто я непонимаю как мне записывать в бд это
#14
$времяпроведение - Это и есть то время, которое ты будешь записывать.

пускай у тебя в базе колонки
1. online - сюда постоянно пишется время из time() для определения онлайна пользователя
2. pastime - сюда пишется общее проведённое время в онлайне
3. $row[] - примитивный элемент массива.
4. $max - время в секундах, когда пользователя считается еще в онлайне.
Сам сценарий
if ($row['pastime'] > time() - $max)
{
$insert = ($row['pastime'] + time() - $row['online']);
sql > UPDATE `пользователи` SET pastime = '$insert' WHERE `айди` = '$мой_айди' LIMIT 1
}
#15
А дальше просто переводишь pastime в минуты/часы/дни и т.д. при выводе
#16
спасибо огромное)))
#17
Тему закрыл Bishop!
Причина: решено