在会话中保持时间并比较差异

时间:2014-05-14 13:02:28

标签: php session session-variables microtime

我有一个代码,我想检查时差。下面的代码将检查时间开始和时间结束,然后它将显示所花费的总时间。

当我第一次加载页面时,时间将在会话中初始化。之后,我将等待几个,然后将$test变量更改为1。然后if将执行并显示Total time taken。然后会话将被销毁并重置所有内容。

然而,代码不起作用。反映等待秒数的时间(以微秒为单位)未显示??

<?php
        if(!isset($_SESSION['time_start'])){
        $_SESSION['time_start']=microtime(true);
        }

$test ='';

if (!empty($test)){

    $time_end = microtime(true);
    $display = $time_end - $_SESSION['time_start'];

    echo "Total time taken: $display";
    session_destroy();
}

?>

1 个答案:

答案 0 :(得分:1)

而不是这样做(并在您修改$ test变量后手动更改和刷新脚本):

$test ='';

if (!empty($test)){

请尝试使用此脚本:

session_start();
$current_time = microtime(true);

if (isset($_SESSION['time_start']) && !empty($_SESSION['time_start']))
{
    $time_end = $current_time;
    $display = $time_end - $_SESSION['time_start'];

    echo "Total time taken: $display";
    $_SESSION['time_start'] = '';
    session_destroy();
}
else
{
    $_SESSION['time_start'] = $current_time;
    echo "Initial time variable set, press refresh.";
}

我认为主要问题是您错过了调用&#39; session_start()&#39;在脚本的顶部。

上述脚本会发生什么?&#39; else&#39;部分将首先作为&#39; time_start&#39;会话的一部分最初未设置,和/或为空。这会将数据设置为会话。下一页加载if语句应该运行,它将显示刷新之间的时间。