PHP:返回当前会话的生命周期

sup*_*led 1 php session

我正在寻找一种方法来检查PHP会话的生命周期,并返回会话"活着"的秒数.

是否有我错过的PHP函数?

Gum*_*mbo 6

您可以存储会话初始化的时间并返回该值:

session_start();
if (!isset($_SESSION['CREATED'])) {
    $_SESSION['CREATED'] = time();
}
Run Code Online (Sandbox Code Playgroud)

并从任意会话中检索该信息:

function getSessionLifetime($sid)
{
    $oldSid = session_id();
    if ($oldSid) {
        session_write_close();
    }
    session_id($sid);
    session_start();
    if (!isset($_SESSION['CREATED'])) {
        return false;
    }
    $created = $_SESSION['CREATED'];
    session_write_close();
    if ($oldSid) {
        session_id($oldSid);
        session_start();
    }
    return time() - $created;
}
Run Code Online (Sandbox Code Playgroud)