时间顺从

我在数据库中的这些值:时间顺从


START_TIME:

  • 2017年1月1日15时38
  • 2017年1月1日14点25
  • 1/1/2017 13:00

我想要的是计算未授权d持续时间与时间'16:00: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>';

但这不起作用。它显示了类似的消息:

Warning: date_diff() expects parameter 1 to be DateTimeInterface, integer given in C:\xampp\htdocs\mct\unauthorized.php on line 13

Fatal error: Call to a member function format() on a non-object in C:\xampp\htdocs\mct\unauthorized.php on line 14

请帮助!

回答:

这是一个简单的方法:

$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 = date_create($value['start']); 

$limit = date_create("16:00:00");

alternativly

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

以上是 时间顺从 的全部内容, 来源链接: utcz.com/qa/263516.html

回到顶部