获得时差并以适当的格式显示

时间:2013-04-12 12:54:53

标签: php mysql

我在数据库中有两个名为start_time(12:30)和end_time(13:35)的字段。我希望以“4小时30分钟”格式显示它们之间的差异。我怎么能完成它?

3 个答案:

答案 0 :(得分:2)

在此问题被删除之前,这是一些慈善机构

$date1    = new DateTime($row['date1']);
$date2    = new DateTime($row['date2']);
$interval = $date2->diff($date1);
$period   = $interval->format('%y years, %m months, %d days, %h hours, %i minutes');
$period   = str_replace(array('0 years,', ' 0 months,', ' 0 days,', ' 0 hours,', ' 0 minutes,'), '', $period);
return str_replace(array('1 years, ', ' 1 months, ', ' 1 days, ', ' 1 hours, ', ' 1 minutes'), array('1 year, ', '1 month, ', ' 1 day, ', ' 1 hour, ', ' 1 minute'), $period);

<强>参考

答案 1 :(得分:2)

我自己想通了,谢谢你。

$from_time = strtotime($job->start_time);
$to_time = strtotime($job->end_time);
$mins=round(abs($to_time - $from_time) / 60,2);
$hrs=round($mins/60,2);
$arr=explode(".",$hrs);
echo $arr[0]." Hrs ".$arr[1]." Mins"; 

答案 2 :(得分:1)

快速浏览一下PHP文档会指出正确的方向。

要比较两个日期,diff method of the DateTime object可能会有用。

完成后,您可以使用date随意格式化。