Вы можете go для опроса, где периодический опрос может получить вам статус активного или потерянного сеанса, и, следовательно, вы можете захватить метку времени для того же.
Также использование метода unload javascript для выполнения вызова ajax может помочь вам следующим образом:
$(window).unload(function() {
var end = new Date();
$.ajax({
url: "log.php",
data: {'timeSpent': end - start},
async: false
})
});