2012-05-11 31 views
5

Przypominam sobie, że ostatnio gdzieś przeczytałem, że można uzyskać czas rozpoczęcia sesji serwera w formacie znacznika czasu z dokładną godziną rozpoczęcia sesji php dla użytkownika, ale nie mogę znaleźć tego artykułu ponownie.Jak znaleźć znacznik czasu rozpoczęcia sesji php

Co nie chcę to czas żądania (czyli do czasu 'REQUEST_TIME') lub „bieżącego datownika” jak z realizacją date() ponieważ (jeśli dobrze rozumiem to poprawnie) będą zmiany dla każdego żądania i każdego wykonania skryptu .

Czego chcę, to czas, w którym sesja została zainicjowana na serwerze, a to logicznie może być tylko jedna chwila w czasie.

Najwyraźniej chodziło o odzyskanie tych informacji.

Czy ktoś może pomóc?

+0

Należy zrobić zakładkę lub blogu o tym, czy znaleźliście coś pożytecznego w internecie. Wtedy łatwiej będzie go znaleźć później. – hakre

+0

Wiem, że wiem. Nie uważałem tego za interesujący w tym czasie ... musiał zasiać ziarno, a teraz płacę cenę. – T9b

Odpowiedz

8

co w tym złego:

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

+1 przeczytaj moje zdanie :) –

+0

Jeśli dobrze to rozumiem, jest to czas żądania ostatniego żądania HTTP. Na przykład, jeśli użytkownik nawigował na kilku stronach, przechwyci czas żądania ostatniej nawigacji. Proszę mnie poprawić, jeśli się mylę. – T9b

+2

@ T9b: Mylisz się. Czas jest ustawiany tylko raz - gdy $ _SESSION ['rozpocz.'] Nie jest ustawione. Następnie, gdy jest ustawiony, jest nietknięty, więc zawsze zaczyna się czas. – djot

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

echo $_SESSION['start_time']; 
2

Jeśli chcesz najkrótsza odpowiedź

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