Jangan repot-repot mencari tahu perbedaan antara zona waktu. Itu tidak perlu.
Setiap kali pengguna mengakses halaman, perbarui bidang dalam catatan tabel Pengguna waktu terakhir diperbarui. Kemudian lakukan kueri untuk semua pengguna yang memiliki waktu pembaruan terakhir dalam 5 menit terakhir. Lebih dari ini, dan mereka dianggap "offline".
Jika Anda menggunakan waktu server Anda, melalui fungsi NOW() di MySQL, Anda akan menghitung perbedaan antara zona waktu.
Ini adalah cara standar untuk melacak berapa banyak pengguna yang saat ini online (Artinya, aktif dalam beberapa menit terakhir).
Terus diperbarui
Jika Anda ingin tahu mereka masih aktif bahkan ketika mereka tidak melompat dari halaman ke halaman, sertakan sedikit javascript untuk melakukan ping ke server Anda setiap 60 detik atau lebih untuk memberi tahu Anda bahwa mereka masih hidup. Ini akan bekerja dengan cara yang sama seperti saran awal saya, tetapi itu akan memperbarui catatan Anda tanpa mengharuskan mereka menjelajahi situs Anda dengan panik setidaknya sekali setiap lima menit.
var stillAlive = setInterval(function () {
/* XHR back to server
Example uses jQuery */
$.get("stillAlive.php");
}, 60000);