Add new DateTime class has date range weekened method

dateRangeHasWeekend with two dates, checks if between those two dates
a weekend (sat or sun) is set
This commit is contained in:
Clemens Schwaighofer
2023-07-04 11:43:27 +09:00
parent 53e267ce24
commit bf63d850ca
3 changed files with 109 additions and 0 deletions

View File

@@ -452,6 +452,31 @@ class DateTime
return $days;
}
}
/**
* check if a weekend day (sat/sun) is in the given date range
* Can have time too, but is not needed
*
* @param string $start_date Y-m-d
* @param string $end_date Y-m-d
* @return bool True for has weekend, False for has not
*/
public static function dateRangeHasWeekend(
string $start_date,
string $end_date,
): bool {
$dd_start = new \DateTime($start_date);
$dd_end = new \DateTime($end_date);
if (
// starts with a weekend
$dd_start->format('N') >= 6 ||
// start day plus diff will be 6 and so fall into a weekend
((int)$dd_start->format('w') + $dd_start->diff($dd_end)->days) >= 6
) {
return true;
}
return false;
}
}
// __END__