Это, похоже, связано: Определение часового пояса пользователя
Я собираюсь заставить вас пойти туда для фрагмента кода, чтобы вы правильно оценили ваши отзывы.
У меня сложилось впечатление, что Javascript - это лучший / самый простой способ получить эти данные.
Что я, вероятно, хотел бы сделать, это использовать GMT или какой-либо другой фиксированный часовой пояс для всего вашего сервера, а затем просто настроить его с помощью js, как только он попадет в браузер, в зависимости от их часового пояса. Либо так, либо просто соберите его один раз в начале разговора и соответствующим образом скорректируйте свой вывод. В обоих случаях могут быть преимущества.
Edit:
О да, насчет "кто в сети", я думаю, вы движетесь в правильном направлении. Я мог бы предложить 2 списка. "Кто активен" и "Кто был активен недавно"
Таким образом, вы можете сделать людей неактивными через 5 минут и считать их отключенными через 10 или около того. Я предполагаю, что это примерно то же самое, но мне как-то кажется более точным.
Другой вариант - установить ajax-запрос на автоматический запуск запроса каждую минуту или около того. Когда они останавливаются, вы знаете, что пользователь исчез.