Используя $date->format("N")
, вы получите числовое представление дня недели (1-7 для понедельника-воскресенья). Если значение больше 4, что больше четверга, выберите следующий понедельник. Если нет, то это предыдущий понедельник.
Если $date->format("N") === 1
, это указанная дата, и нам не нужно никаких изменений.
$date = new DateTime("November 20th");
$dayOfWeek = $date->format("N");
if ($dayOfWeek > 1) {
$date->modify($dayOfWeek > 4 ? 'next monday' : 'previous monday');
}
echo $date->format("Y-m-d");