Я пытаюсь вернуть 1-й рабочий день следующего месяца, который должен исключать обычные праздничные дни - я решил положиться на strototime()
, поскольку это может помочь и циклически проходить по датам. Теперь возникает проблема, что strototime()
может возвращать «первый день следующего месяца», но не на «второй день следующего месяца и т. Д.». Есть ли другой способ вернуть даты или я должен попытаться программно соединить эти даты?
Вот мой сценарий:
function getDODate() {
// Dates to select:
$dates = [
"first day of next month",
"second day of next month",
"third day of next month",
"forth day of next month",
"fifth day of next month",
"sixth day of next month",
"seventh day of next month"
];
// public holidays:
$publicHolidays = ['0101', '0501'];
foreach ($dates AS $day) {
// Get the dates for check:
$monthDay = date("md", strtotime($day));
$dayName = date("l", strtotime($day));
echo $monthDay."<br />";
// First, let's get the date to ensure it's not a public holiday:
if (!in_array($monthDay, $publicHolidays)) {
// Date does not fall on a public holiday, is it a weekend?
if (!in_array($dayName, ['Saturday', 'Sunday'])) {
// We've got a date that will work, return:
return date("Ymd", strtotime($day));
}
}
}
}