PHP每当我用time()调用$var时,值都会发生变化


PHP whenever i call a $var with time() the value changes

PHP 5.4

我想要一个start_time&end_time

end_time应具有start_time + 5

问题是每次我刷新页面时,的时间都会改变

如何使end_time不更改?

示例代码:

// Set timeout period in seconds
$_SESSION['inactive_amount'] = 5;
$inactive = $_SESSION['inactive_amount'];
$_SESSION['start_time'] = time();
$start_time = $_SESSION['start_time'];
$_SESSION['end_time'] = $start_time + $inactive;
echo "<pre>", print_r($_SESSION, true), "</pre>";

输出1:

Array
(
    [inactive_amount] => 5
    [start_time] => 1423701080
    [end_time] => 1423701085
)

输出2[刷新]:

Array
(
    [inactive_amount] => 5
    [start_time] => 1423701098
    [end_time] => 1423701103
)

[end_time]发生变化,因此它永远不会达到[start_time] + 5 seconds 设置的初始时间

问题很简单(对于知道的人来说),我想在处理任何类型的时间时,如何将其存储在某个地方,使其值在设置后不会改变?我这样写是因为它将不仅仅用于一个会话,我有多个地方需要比较时间。

*注意:我知道我可以将start_time + 5值存储在数据库中,然后再次检索它来填充var,如果没有数据库,我想这样做。

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

这将防止每次刷新页面时更新您的会话时间。一旦设置好,就不会在每次页面刷新时一次又一次地将其设置为会话变量。请告诉我这是否有效。