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
变量插入数据库之前将其剥离(如果它来自不受信任的用户输入源)。