2012-05-11 8 views
5

Ricordo di aver letto da qualche parte di recente che è possibile ottenere l'ora di inizio della sessione del server in formato timestamp del momento esatto in cui una sessione PHP è iniziata per un utente, ma non riesco a trovare più questo articolo.come faccio a trovare la data/ora di inizio della sessione php

Quello che non voglio è l'orario della richiesta (cioè il tempo della 'REQUEST_TIME') o il "timestamp corrente", come l'esecuzione di date() perché (se ho ben capito queste correttamente) che cambierà per ogni richiesta ed ogni esecuzione dello script .

Quello che voglio è il tempo in cui la sessione è stata avviata sul server, e questo può logicamente essere solo un momento nel tempo.

A quanto pareva c'era il recupero di questa informazione.

Qualcuno può aiutare?

+0

Si dovrebbe fare un segnalibro o un blog su di esso se hai trovato qualcosa di utile in internet. Quindi è più facile ritrovarlo più tardi. – hakre

+0

Lo so lo so. All'epoca non l'ho trovato così interessante ... deve aver piantato il seme e ora pago il prezzo. – T9b

risposta

8

cosa c'è di sbagliato con:

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

+1 read my mind :) –

+0

Se ho capito bene, questo è il tempo di richiesta per l'ultima richiesta http. Ad esempio, se l'utente ha navigato su più pagine, acquisirà il tempo di richiesta dell'ultima navigazione. Per favore, correggimi se ho torto su questo. – T9b

+2

@ T9b: ti sbagli. L'ora è impostata solo una volta - quando $ _SESSION ['started'] non è impostato. Quindi, quando impostato, è intatto, quindi sempre l'ora di inizio. – djot

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

echo $_SESSION['start_time']; 
2

se si desidera una risposta più breve

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