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);
答案 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
变量,然后将其插入到数据库中,如果它来自不信任用户输入源。