Я знаю, что это немного поздний ответ, но я хотел бы добавить свой ответ для будущих ссылок.
// Create a new DateTime object
$date = new DateTime();
// Modify the date it contains
$date->modify('next monday');
// Output
echo $date->format('Y-m-d');
Приятно, что вы также можете делать это с датами, отличными от сегодняшних:
// Create a new DateTime object
$date = new DateTime('2006-05-20');
// Modify the date it contains
$date->modify('next monday');
// Output
echo $date->format('Y-m-d');
Чтобы сделать диапазон:
$monday = new DateTime('monday');
// clone start date
$endDate = clone $monday;
// Add 7 days to start date
$endDate->modify('+7 days');
// Increase with an interval of one day
$dateInterval = new DateInterval('P1D');
$dateRange = new DatePeriod($monday, $dateInterval, $endDate);
foreach ($dateRange as $day) {
echo $day->format('Y-m-d')."
";
}
Справочник по PHP - DateTime
Руководство PHP - DateInterval
Руководство по PHP - DatePeriod