我正在使用以下代码来获得时差。大多数情况都可以。但是当开始时间是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。 感谢。
答案 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;
答案 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!