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

时间:2016-03-21 09:26:08

标签: php mysql

Hy! 我在数据库login_time,logout_time,total_time中有3个变量。 total_time的数据类型为'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);

2 个答案:

答案 0 :(得分:6)

尝试使用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"

答案 1 :(得分:0)

你可以尝试一下吗?

$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;

取自here

  

请注意,此代码看起来存在SQLi注入,确保您剥离 HTML的$user变量,然后将其插入到数据库中,如果它来自不信任用户输入源。