Con le sessioni.
Quando un utente fa il logout, la sessione è scaduta, punto!

Io non aggiornerai il DB con l'orario.... secondo me non ha senso.
Ti consiglio di salvare le sessioni in una specifica cartella del tuo sito (e non nell'area comune che imposta il server).
Codice PHP:
       ini_set("session.save_path","tua_cartella"); 
Poi controllerei quante sessioni ci sono lì, e chi le ha aperte.
Naturalmente, l'identificativo della sessione utente è la chiave che userai per vedere chi è online e chi no!

Non ho voglia di scrivere codice, ma credo che avrai capito come impostare il lavoro.