рассчитать разницу во времени

Я знаю этот тип вопросов, задаваемых ранее, но я хочу рассчитать разницу во времени и времени. Я новичок, поэтому не могу получить себя в экспертном режиме. Я выполнил приведенный ниже код, и в конце и в ошибке, в которой говорилось об этой «Исправляемой фатальной ошибке: объект класса mysqli_result не может быть преобразован в строку в C: \ wamp \ www \ testsite \ time_test.php on line 105 «

<?php
$con = mysqli_connect("localhost","root","","testsite") OR die("Could not connect: ".mysqli_error());

if (isset($_POST['isubmit'])) {
// Check the cookie exits or not
if (isset($_COOKIE['uid'])) {
$_COOKIE['uid'];
}

$uid = $_COOKIE['uid'];

echo "Hello user: ".$uid;

$isql = mysqli_query($con, "INSERT INTO `time`(`uid`, `intime`, `date`) VALUES ('$uid',CURTIME(),CURDATE())");
$lid = mysqli_insert_id($con);

echo $lid;
}
if (isset($_POST['osubmit'])) {
if(isset($_COOKIE['uid'])) {
$_COOKIE['uid'];
}

$uid = $_COOKIE['uid'];
$ssql= mysqli_query($con,"SELECT `intime`, `outtime`, `date` FROM `time` WHERE `uid`=".$uid);

while ($row = mysqli_fetch_array($ssql)) {
$intime = $row['intime'];
$outtime= $row['outtime'];
$date   = $row['date'];

if(!empty($date)){
$tmp = mysqli_query($con, "SELECT CURTIME()");
$lid = mysqli_insert_id($con);

$temp= strtotime($outtime) - strtotime($intime);

echo $temp;
//below line is line number 105
$usql= "UPDATE `time` SET `outtime`= $tmp,`diff`= '$temp' WHERE `id`=".$lid." AND `uid`=".$uid;
$run = mysqli_query($con, $usql);
if (!$run) {
die("Update database query error: ". mysqli_error());
}
}
}
}
?>

1

Решение

Ваша проблема в том, что ваш $tmp var — это запрос, а не результат запроса. Вы должны сначала получить результат. Вот почему вы получаете эту ошибку. Но вы можете получить время с помощью PHP, не выполняя запрос:

$tmp = date('H:i:s');

Кроме того, ваш $temp переменная будет выглядеть как целое число. Использовать date функция для его форматирования:

$temp = date('H:i:s', strtotime($outtime) - strtotime($intime));

Также имейте в виду, что вы подвержены SQL-инъекциям: ваш $uid это печенье, которое не является безопасным. Возможно, вы захотите привести его к целому числу:

$uid = (int)$_COOKIE['uid'];

Или вы можете сделать это лучше и использовать prepared statements

0

Другие решения

Других решений пока нет …