<?php
/**
* @param \DateTime $date Date of the original meeting
* @return \DateTime Date of the next meeting
*/
function getSameDayNextYear(\DateTime $date = null)
{
if(!$date){
$date = new \DateTime();
}
return (new \DateTime())->setISODate((int)$date->format('o') + 1, (int)$date->format('W'), (int)$date->format('N'));
}
$start = new \DateTime();
$end = new \DateTime('+ 4 months');
$interval = new \DateInterval('P5D');
$period = new \DatePeriod($start, $interval, $end);
$format = 'l d-m-Y';
foreach($period as $date){
echo $date->format($format) . ' => ' . getSameDayNextYear($date)->format($format) . "\n";
}