使用$ _SESSION的奇怪时间行为

时间:2013-08-20 10:37:31

标签: php session time

我必须承认我是PHP的新手,但请看这个:

if(!isset($_SESSION['mailtime'])){
    $_SESSION['mailtime'] = time();
    echo 'Mail time: '. $_SESSION['mailtime'] .'</br>Time now: ' . time() . '</br>';
    echo 'Since last mail:' . time()-($_SESSION['mailtime']) . ' sec';
}
else{
    echo 'Mail time: '. $_SESSION['mailtime'] .'</br>Time now: ' . time() . '</br>';
    echo 'Since last mail:' . time()-($_SESSION['mailtime']) . ' sec';
}

这给了我一个结果,例如:

Mail time: 10
Time now: 16
Since last mail: -10 sec

我的代码出了什么问题?我试图制作

$mailtime = $_SESSION['mailtime'];

但是我得到的变量更短:

Mail time:
Time now:
Since last mail: 0 sec

1 个答案:

答案 0 :(得分:0)

你的例子似乎有些做作。 PHP time()函数应返回更高的数字:

  

int time()
  返回自Unix Epoch(1970年1月1日00:00:00 GMT)以来秒数测量的当前时间。

有关如何使用time()功能的示例,请转到manual page。它清楚地表明您可能最好使用date()来达到目的。

您应该清楚自己设置$_SESSION['mailtime']的位置。在您的示例中,输出表示您在将变量与time()进行比较之前几秒钟设置变量的行。要进行调试,您必须显示代码,而不仅仅是一个人为的例子。