Cita:
Iniciado por emprear
En la medida que puedas evitarte el javascript, va a ser más fiable, cuando inicie sesión capturás el tiempo dejás una cookie con dicho valor, cuando la cierre (botón cerrar sesion), tomás el tiempo, calculás la diferencia y mostrás el mensaje.
Si son de esos usuarios que acostumbran a no cerrar sesion, te conviene fijar la misma en un tiempo máximo
Saludos
Pero la mayoría de las veces, el usuario simplemente cierra la ventana del navegador por lo que no se accionaría ese evento de "click".
La única forma que conozco posible es aplicar el evento onbeforeunload o dejar una conexión abierta con un while( !connection_aborted() ) en PHP y después de este while hacer lo deseado. Pero creo que esta última forma, hace que el servidor gaste recursos innecesarios.