Lad være med at finde ud af forskellene mellem tidszoner. Det er ikke nødvendigt.
Når brugeren tilgår en side, skal du opdatere et felt i deres registrering af brugertabellen sidst opdateret-tidspunkt. Foretag derefter en forespørgsel for alle brugere, der har et sidste opdateringstidspunkt inden for de sidste 5 minutter. Alt mere end dette, og de betragtes som "offline."
Hvis du bruger din server-tid via NOW()-funktionen i MySQL, vil du sideskride med at beregne forskelle mellem tidszoner.
Dette er standardmetoden til at spore, hvor mange brugere der i øjeblikket er online (det vil sige aktive inden for de sidste par minutter).
Konstant opdateret
Hvis du gerne vil vide, at de stadig er aktive, selvom de ikke hopper fra side til side, skal du inkludere lidt javascript for at pinge din server hvert 60. sekund eller deromkring for at fortælle dig, at de stadig er i live. Det fungerer på samme måde som mit oprindelige forslag, men det vil opdatere dine optegnelser uden at kræve, at de febrilsk gennemser dit websted mindst én gang hvert femte minut.
var stillAlive = setInterval(function () {
/* XHR back to server
Example uses jQuery */
$.get("stillAlive.php");
}, 60000);