Тогда нужно поле, в которое (допустим переменная $online) записывается время time() после авторизации. Допустим авторизовался, время записалось.
Скрипт сброса пользователей (или кроном или как у вас делается, что видно что человек ушел с сайта), когда он видит в условии что человека нет больше такого-то времени и перед тем как поменять значение в онлайн на офлайн, нужно дописать в новое поле (как раз то время которое он был онлайн) $time += time()-$online;
Таким образом в переменную тайм мы будем записывать время которое он провел до этого момента + время которое провел сейчас на сайте в секундах.
Ну а чтоб вывести в днях и т.д., то делим на 60 сек, 60 мин, 24 часа)
Вот так не сложно