Php 与数据库值的时间差
我在数据库中有以下值:Php 与数据库值的时间差,php,mysqli,Php,Mysqli,我在数据库中有以下值: 开始时间: 2017年1月1日15:38 2017年1月1日14:25 2017年1月1日13:00 我想要的是根据时间“16:00:00”计算未经授权的持续时间,并列出持续时间。这就是我所做的 include 'includes/db_conn.php'; $result = mysqli_query($connection,"SELECT * FROM time") or die(mysqli_error($connection)); ech
开始时间:
- 2017年1月1日15:38
- 2017年1月1日14:25
- 2017年1月1日13:00
include 'includes/db_conn.php';
$result = mysqli_query($connection,"SELECT * FROM time") or die(mysqli_error($connection));
echo "<table border=1>"
. "<tr>"
. "<td>Start Time</td>"
. "<td>Limit</td>"
. "<td>Unauthorized Time</td>"
. "</tr>";
foreach ($result as $value) {
$db_date = strtotime($value['start']);
$limit = strtotime("16:00:00");
$interval = date_diff($limit,$db_date);
$unauto = $interval->format('%h:%i:%s');
echo "<tr>"
. "<td>".$value['start']."</td>"
. "<td>16:00:00</td>"
. "<td>".$unauto."</td>".
"</tr>";
}
echo '</table>';
include'includes/db_conn.php';
$result=mysqli_query($connection,“SELECT*FROM time”)或die(mysqli_error($connection));
回声“”
. ""
. “开始时间”
. “限制”
. “未经授权的时间”
. "";
foreach(结果为$value){
$db_date=strottime($value['start']);
$limit=strottime(“16:00:00”);
$interval=date\u diff($limit,$db\u date);
$unauto=$interval->format(“%h:%i:%s”);
回声“”
.“.$value['start']”
. "16:00:00"
.“$unauto.”。
"";
}
回声';
但这是行不通的。它会显示如下消息:
警告:date_diff()要求参数1为DateTimeInterface,
第13行C:\xampp\htdocs\mct\unauthorized.php中给出的整数
致命错误:对中的非对象调用成员函数format()
第14行C:\xampp\htdocs\mct\unauthorized.php
请帮忙
$db_date = date_create($value['start']);
$limit = date_create("16:00:00");
交替地
$db_date = strtotime($value['start']);
$limit = strtotime("16:00:00");
$diff = $db_date-$limit;
$interval = DateInterval::createFromDateString($diff.' seconds');
$unauto = $interval->format('%h:%i:%s');
交替地
$db_date = strtotime($value['start']);
$limit = strtotime("16:00:00");
$diff = $db_date-$limit;
$interval = DateInterval::createFromDateString($diff.' seconds');
$unauto = $interval->format('%h:%i:%s');
这是一个简单的方法:
$db_date = new DateTime(date('H:i:s',strtotime($value['start'])));
$limit = new DateTime(date('H:i:s',strtotime("16:00:00")));
$interval = date_diff($limit,$db_date);
$unauto = $interval->format('%h:%i:%s');
这是一个简单的方法:
$db_date = new DateTime(date('H:i:s',strtotime($value['start'])));
$limit = new DateTime(date('H:i:s',strtotime("16:00:00")));
$interval = date_diff($limit,$db_date);
$unauto = $interval->format('%h:%i:%s');
结果显示为“0:0:2161320”。从上面的数据库中获取第一行值并进行尝试。结果如下所示:“0:0:2161320”。从上面的数据库中获取第一行值并尝试。非常感谢Mohammad先生。非常感谢Mohammad先生。