比较四个日期集并计算 PHP 中的重叠时间

comparing four date sets and calculate the overlaying hours in PHP

我在 PHP 中遇到一个关于时间计算器的(小)问题。 问题如下:

我有四个约会对象(都在同一天)但时间不同。 有一组 A 和一组 B 就像:

A 组:

from 9:00 till 12:00

B 组:

from 10:30 till 12:30

我需要一种方法来检查 b 组是否属于 a 组(它会持续 2 小时),如果它属于 a 组,那么它必须计算它会持续多少小时。之后,它必须添加不重叠的剩余时间 (which is 12:00 till 12:30 so 30 minutes)

所以这个计算的答案应该是2.5 hours,因为group Bgroup A2 hours然后有半个小时(0.5) out of group A .

我希望有人能帮我解决这个问题,因为我不知道如何在 PHP 中计算它。

它将是 2,因为 B 组在 A 组中停留了 1.5 小时而不是 2 小时:

$time1_1 = '01-02-2016 9:00';
$time1_2 = '01-02-2016 12:00';
$time2_1 = '01-02-2016 10:30';
$time2_2 = '01-02-2016 12:30';

$hourdiff1 = round((strtotime($time1_2) - strtotime($time2_1))/3600, 1);
$hourdiff2 = round((strtotime($time2_2) - strtotime($time1_2))/3600, 1);

$hourdiff = $hourdiff1 + $hourdiff2;
echo $hourdiff;

this是参考。