gpt4 book ai didi

php - 计算 2 个或更多日期是否重叠

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:15 28 4
gpt4 key购买 nike

在 PHP 中是否有计算 2 个或更多日期是否重叠的有效方法?

例。

  • Date1:​​ Start1 = 2012-03-10/End1 = 2012-05-10
  • Date2: Start2 = 2012-04-25/End2 = 2012-06-01
  • Date3: Start3 = 2012-07-15/End3 = 2012-08-20

上面例子中Date1和Date2重叠,Date3可以。

最佳答案

如果您的日期是 YYYY-MM-DD 格式,那么您可以做一个字符串比较(如果使用 strtotime() 作为 unix 时间戳,它们不必是有效日期或 1970 年之后)

if( ($date1['start']>=$date2['start'] && $date1['start']<=$date2['end']) || ($date1['end']>=$date2['start'] && $date1['end']<=$date2['end']) || ($date1['start']<=$date2['start'] && $date1['end']>=$date2['end']) )
{
// overlap
}

这检查 date1 的开始或结束是否在 date2 的开始和结束之间,或者 date1 是否包围 date2

.

感谢@Germann-Arlington -

if($date1['start']<=$date2['end'] && $date2['start']<=$date1['end']) { // overlap }

关于php - 计算 2 个或更多日期是否重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967634/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com