2012-05-11 6 views
5

Ich erinnere mich irgendwo lesen vor kurzem, dass Sie die Server-Session-Startzeit im Timestamp-Format der genauen Zeit eine PHP-Sitzung für einen Benutzer gestartet erhalten kann, aber ich kann diesen Artikel nicht wieder finden.Wie finde ich die php Sitzung starten Timestamp

Was ich will nicht wissen, ist die Anforderungszeit (dh die Zeit, die 'REQUEST_TIME') oder den „aktuellen Zeitstempel“, wie die Ausführung von date() da (wenn ich diese richtig verstehen) sie für jede Anforderung ändern und jede Skriptausführung .

Was ich will ist die Zeit, dass die Sitzung auf dem Server initiiert wurde, und dies kann logisch nur einen Zeitpunkt sein.

Es gab anscheinend eine Möglichkeit, diese Information zu erhalten.

Kann jemand helfen?

+0

Sie sollten ein Lesezeichen machen oder darüber bloggen, wenn Sie etwas Nützliches im Internet gefunden. Dann ist es einfacher, es später wieder zu finden. – hakre

+0

Ich weiß, dass ich weiß. Ich fand es zu der Zeit nicht so interessant ... es muss den Samen gepflanzt haben und jetzt zahle ich den Preis. – T9b

Antwort

8

was mit falsch:

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

+1 lesen Sie meine Meinung :) –

+0

Wenn ich das richtig verstehe, ist dies die Anfrage Zeit für die letzte HTTP-Anfrage. Wenn der Benutzer beispielsweise zu mehreren Seiten navigiert hat, erfasst er die Anfragezeit der letzten Navigation. Bitte richte mich, wenn ich falsch liege. – T9b

+2

@ T9b: Sie liegen falsch. Die Zeit wird nur einmal gesetzt - wenn $ _SESSION ['gestartet'] nicht gesetzt ist. Wenn es dann eingestellt ist, ist es unberührt, also immer die Startzeit. – djot

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

echo $_SESSION['start_time']; 
2

Wenn Sie eine kürzeste Antwort

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