0

我正在使用以下代码来获取时差。大多数情况下都可以。但是当开始时间是下午 12:00 和结束时间是下午 1:30 时,结果显示 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;

帮帮我,请。谢谢。

4

2 回答 2

0

只需更改h:iH: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;

看到它在行动

于 2013-03-31T16:58:36.127 回答
-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!
于 2013-03-31T17:12:21.900 回答