我有一个代码,我想检查时差。下面的代码将检查时间开始和时间结束,然后它将显示所花费的总时间。
当我第一次加载页面时,时间将在会话中初始化。之后,我将等待几个秒,然后将$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();
}
?>
答案 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语句应该运行,它将显示刷新之间的时间。