计算时差的函数,但仅考虑PHP中的小时数

时间:2014-07-30 13:04:22

标签: php

我有一个日历,用户可以在其中保存事件。每个活动都有$start_time$end_time。时间以HH:mm:ss格式保存。是否有一个函数可以计算两次之间的差异,但只考虑小时数,而不是分钟数和秒数?例如,如果$start_time = 09.00.00$end_time = 12.00.00,则difference(start_time, end_time)应为3

2 个答案:

答案 0 :(得分:1)

DateTime类有比较日期的方法 -

$start = new DateTime('04:13:41');  // accepts the same formats as strtotime
$end = new DateTime('08:31:13');
$diff = $start->diff($end);         // pass 'true' as the second param for absolute
echo $diff->h;                      // 'h' contains the difference in hours

答案 1 :(得分:0)

您可以通过使用strtotime()函数将字符串解析为数字格式来计算差异,然后计算时间增量并将其解析为带有date()的字符串表示,如下所示:

$delta = strtotime($end_time) - strtotime($start_time);
$timediff = date('H', $delta);

或者您可以删除减法之前的秒和分钟,如下所示:

$end_time_hrs = date('H', strtotime($end_time));
$start_time_hrs = date('H', strtotime($start_time));

然后是差异:

$delta = strtotime($end_time_hrs) - strtotime($start_time_hrs);
$timediff = date('H', $delta);