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