0

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

当我第一次加载页面时,时间将在会话中初始化。之后,我将等待几秒钟,然后将$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();
}

?>
4

1 回答 1

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.";
}

我认为主要问题是您错过了在脚本顶部调用“session_start()”。

上面的脚本会发生什么是'else'部分将首先运行,因为会话的'time_start'部分最初没有设置,和/或为空。这会将数据设置到会话中。下一页加载 if 语句应该运行,它将显示刷新之间的时间。

于 2014-05-14T13:25:07.397 回答