计算重叠或非重叠日期范围中的天数:PHP和Carbon实现方法
P粉754477325
P粉754477325 2023-09-09 14:50:29
0
1
472

如何获取2个或多个潜在重叠日期范围(CarbonPeriod)的天数?

$startDate_1 = '2022-12-01'; $endDate_1 = '2022-12-10'; $startDate_2 = '2022-12-06'; $endDate_2 = '2022-12-15'; $startDate_3 = '2022-12-21'; $endDate_3 = '2022-12-25'; $dateRange_1 = CarbonPeriod::create($startDate_1, $endDate_1); $dateRange_2 = CarbonPeriod::create($startDate_2, $endDate_2); $dateRange_3 = CarbonPeriod::create($startDate_3, $endDate_3);

例如,如上所示,我有3个日期范围。我需要获取所有3个日期范围中不重叠的总天数。在这个例子中应该是20天。在Carbon / CarbonPeriod中是否有任何内置方法可以实现这个?

P粉754477325
P粉754477325

全部回复 (1)
P粉475126941

你可以只需合并和去重它们。

$startDate_1 = '2022-12-01'; $endDate_1 = '2022-12-10'; $startDate_2 = '2022-12-06'; $endDate_2 = '2022-12-15'; $startDate_3 = '2022-12-21'; $endDate_3 = '2022-12-25'; $dateRange_1 = CarbonPeriod::create($startDate_1, $endDate_1); $dateRange_2 = CarbonPeriod::create($startDate_2, $endDate_2); $dateRange_3 = CarbonPeriod::create($startDate_3, $endDate_3); // 20个日期,只包含没有重复的日期。 $uniqueDays = array_unique(array_merge($dateRange_1->toArray(), $dateRange_2->toArray(), $dateRange_3->toArray()));
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!