2012-05-11 14 views
5

Recuerdo haber leído recientemente que puede obtener la hora de inicio de la sesión del servidor en formato de marca de tiempo de la hora exacta en que se inició una sesión php para un usuario, pero no puedo encontrar este artículo nuevamente.¿Cómo encuentro la marca de tiempo de inicio de la sesión php?

Lo que no quiero es el momento de la solicitud (es decir, el momento en que el 'REQUEST_TIME') o la "fecha y hora actual", como de la ejecución de date() porque (si entiendo esto correctamente) que va a cambiar para cada petición y cada ejecución del script .

Lo que quiero es el tiempo que la sesión se inició en el servidor, y esto, lógicamente, solo puede ser un momento en el tiempo.

Aparentemente hubo una necesidad de recuperar esta información.

¿Alguien puede ayudar?

+0

Usted debe hacer un marcador o un blog acerca de si has encontrado algo útil en internet. Entonces es más fácil encontrarlo de nuevo más adelante. – hakre

+0

Sé que lo sé. No me pareció tan interesante en ese momento ... debe haber plantado la semilla y ahora pagué el precio. – T9b

Respuesta

8

lo que está mal:

if (!isset($_SESSION['started'])) { 
    $_SESSION['started'] = $_SERVER['REQUEST_TIME']; 
} 
+0

+1 read my mind :) –

+0

Si entiendo esto correctamente, este es el tiempo de solicitud para la última solicitud http. Por ejemplo, si el usuario ha navegado a varias páginas, capturará el tiempo de solicitud de la última navegación. Por favor, avísenme si me equivoco en esto. – T9b

+2

@ T9b: Estás equivocado. La hora solo se establece una vez, cuando $ _SESSION ['started'] no está configurado. Luego, cuando se establece, no se toca, por lo que siempre es la hora de inicio. – djot

3
if (!isset($_SESSION['start_time'])) 
{ 
    $str_time = time(); 
    $_SESSION['start_time'] = $str_time; 
} 

echo $_SESSION['start_time']; 
2

si quieres una respuesta más corta

$_SESSION['started'] = (!isset($_SESSION['started'] ? time() : $_SESSION['started']); 
Cuestiones relacionadas