计算与PHP的持续时间

时间:2013-03-31 16:54:22

标签: php mysql datetime

我正在使用以下代码来获得时差。大多数情况都可以。但是当开始时间是12:00 PM,结束时间是1:30 PM时,结果显示11.0而不是1:30 。来自MySQL的开始和结束时间。

$startTime=new DateTime(date("h:i",strtotime($data['start_time'])));
$endTime=new DateTime(date("h:i",strtotime($data['end_time'])));
$timeInterval=$startTime->diff($endTime);
$getHours=$timeInterval->format('%h');
$getMinutes=$timeInterval->format('%i');
$duration=$getHours.":".$getMinutes;

帮帮我,PLZ。 感谢。

2 个答案:

答案 0 :(得分:0)

只需将h:i更改为H:i

<?php
$startTime=new DateTime(date("H:i",strtotime('12:00')));
$endTime=new DateTime(date("H:i",strtotime('13:30')));
$timeInterval=$startTime->diff($endTime);
$getHours=$timeInterval->format('%h');
$getMinutes=$timeInterval->format('%i');
$duration=$getHours.":".$getMinutes;
echo $duration;

See it in action

答案 1 :(得分:-1)

希望这会有所帮助:

$differenceMinutes  = (strtotime($data['end_time']) - strtotime($data['start_time'])) / 60; // Get difference as minutes
$getHours           = floor($differenceMinutes / 60); // Get hours
$getMinutes         = floor($differenceMinutes % 60); // Get minutes
$duration           = $getHours . " h " . $getMinutes . " min";

print $duration; // Print it out!