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();
}

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