网站上的总登录时间显示错误的时间


total login time on website displaying a wrong time

Hy !我在数据库login_time、logout_time total_time中有 3 个变量。total_time的数据类型是"时间",而其他两个的数据类型是"date_time"数据类型。我所做的是,我只提取login_time并在查询中logout_time并将它们保存到变量中。我将登录和注销时间存储在变量中。现在我需要以小时、分钟、秒为单位计算总时间。我试图计算,但它没有给出这样的确切时间。

login_time = 2016-03-21 14:09:28

logout_time = 2016-03-21 14:10:22

total_time = 11:50:32

这是错误的!我的错误是什么?

尝试了许多解决方案,但他们没有解决我的问题!帮帮我

 if(isset($_SESSION['start_time']))
{
    $start = $_SESSION['start_time'];
    $final = $_SESSION['final_time'];
    $diff = strtotime($final) - strtotime($start);
     //"%H:%M:%S"
    $total = date('H:i:s', $diff);
    $sql4 = "UPDATE log SET total_time = '$total' WHERE username = '$user'";
  $res4 = mysqli_query($link, $sql4);

尝试使用DateTime.diff如下方法:

$start = new DateTime('2016-03-21 14:09:28');
$final = new DateTime('2016-03-21 14:10:22');
$diff = $final->diff($start);
var_dump($diff->format('%H:%I:%S'));

结果将是:

string(8) "00:00:54"

你可以试试这个吗?

$difference = round(abs($to_time - $from_time) / 60,2). " minute";
$query = "UPDATE log SET total_time = '$difference' WHERE username = '$user'";
if($link->query($query)):
    echo 'Success';
endif;

取自这里。

请注意,此代码看起来像存在 SQLi 注入,请确保在将 HTML 的$user变量插入数据库之前将其剥离(如果它来自不受信任的用户输入源)。