2015-02-12 22 views
1

PHP 5.4

我想有一个start_time & end_time

end_time应该有start_time + 5

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

我怎样才能得到end_time到NOT更改?

示例代码:

// 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,我想这样做没有分贝。

+3

检查$ _SESSION ['end_time']是否已经存在,如果它不覆盖它 – 2015-02-12 03:11:47

+0

每次刷新页面时,开始时间都会改变,并且结束时间与开始时间有关系,所以它也会改变。 – 2015-02-12 03:12:23

+0

@Dagon ..谢谢你打它的头,使用下面的代码,只是把它切换成一个律.. thx – SecureCloud 2015-02-12 04:03:38

回答

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

这会阻止您每次刷新页面时更新会话时间。一旦设置完成,它将不会在每次刷新页面时再次设置为会话变量。请让我知道这是否有效。

+0

谢谢..你很接近,这是我需要的答案..有点。如果(!isset($ _ SESSION ['end_time'])){ $ _SESSION ['end_time'] = $ start_time + $ inactive; } 其'end_time',我想确定没有设置,如果它不增量...(不是'start_time').. +1帮助 – SecureCloud 2015-02-12 03:53:00

+0

谢谢,我很高兴它帮助你解决你的问题。 – 2015-02-12 03:53:33

相关问题