How do I find how many days are within a date range that are within another date range in PHP?
我正在使用 Carbon PHP 库。重复问题中的答案使用 PHP 的内置函数。
计算一个日期范围内有多少天在另一个日期范围内
下面是我用来查找日期范围(
我使用的库是 http://carbon.nesbot.com/docs/
在这种情况下,预期的结果应该是 4..希望你能帮助我。
1 2 3 4 5 6 7 8 9 10 11 | $userDateStart = Carbon::createFromFormat('Y-m-d','2015-06-26'); $userDateEnd = Carbon::createFromFormat('Y-m-d','2015-06-29'); $couponStart = Carbon::createFromFormat('Y-m-d','2015-06-26'); $couponEnd = Carbon::createFromFormat('Y-m-d','2015-10-31'); if(($userDateStart >= $couponStart && $userDateEnd <= $couponEnd) || ($couponStart >= $userDateStart && $couponEnd <= $userDateEnd)){ die("Yes,The date is within this date range"); } die("No,It is not within this date range"); |
根据提供的文档,您需要使用:
1 2 3 |
所以要使用您的程序,我认为您需要这样做:
1 2 3 4 5 6 7 8 9 10 11 12 | $userDateStart = Carbon::createFromFormat('Y-m-d','2015-06-26'); $userDateEnd = Carbon::createFromFormat('Y-m-d','2015-06-29'); $couponStart = Carbon::createFromFormat('Y-m-d','2015-06-26'); $couponEnd = Carbon::createFromFormat('Y-m-d','2015-10-31'); //Determin the highest date from the starts and the minimum dates from the ends $startBetweenDate = $userDateStart->max($couponStart); $endBetweenDate = $userDateEnd->min($couponEnd); //Now find how many days are between echo $startBetweenDate->diffInDays($endBetweenDate); //Should be 4 |
请注意:这没有经过测试,因为我没有安装 Carbon 的库。