我刚问过这个问题,它被标记为已经回答,但是谁做了这些显然不明白这个问题。返回两个PHP DatePeriods之间的重叠分钟数
这个帖子被标记为重复的问题,这一点,
,但他们都没有,甚至远程一样。
我两个DatePeriods不是两个日期之间的差值在寻找的重叠时间量。
“DatePeriod”由两个日期组成,我正在寻找两个DatePeriod之间的重叠量。
还有另一篇文章,我发现答案的一半我在这里的问题,
和它的作品很好,但它并没有给我时间重叠量的两个日期之间范围。它只确定它们是否重叠。我需要知道它们重叠的分钟数量。所以这是我的原始问题...
我认为会有一个非常简单的方法来做到这一点,但我已经找遍了,找不到解决方案。逻辑很简单:找到给定两个DatePeriods的重叠分钟的数量。
例如,
-I有$startDate1
和$endDate1
作为第一时间范围。
- 我有$startDate2
和$endDate2
作为第二个日期范围。
(出于演示起见,格式是'Y-m-d H:i'
)
假设
$startDate1 = '2015-09-11 09:15'
和$endDate1 = '2015-09-13 11:30'
。假设
$startDate2 = '2015-09-13 10:45'
和$endDate2 = '2015-09-14 12:00'
。
我期望的45分钟重叠的结果。这怎么能实现?
我已经看到这样做使用两个日期时间但这不是我正在寻找。
datePeriod由两个DateTime组成,我正在寻找两个DatePeriod之间的区别。
重叠需要在两个方向上计算。如果$ startDate1和$ endDate1晚于或在$ startDate2和$ endDate2之间。 –
不,它没有。就像我说的,有四个步骤。 (1)计算较晚的开始日期;在此之前,重叠是不可能的。 (2)计算较早的结束日期;之后重叠是不可能的。 (3)从较早的结束日期减去较晚的开始日期。 (4)检查结果。如果它是零或更大,那就有你的答案。如果它是负面的,那么你的答案是零;这意味着第二阶段直到第一阶段结束才开始。 –
我明白你的意思了。谢谢。我会试一试并提供一个关于我是否成功的更新。 –