3v4l.org

run code in 300+ PHP versions simultaneously
<?php $startDate = '2017-03-31'; $endDate = '2017-05-14'; $fromDate = explode("-", $startDate); $toDate = explode("-", $endDate); $start = new DateTime($startDate); $end = new DateTime($endDate); $interval = DateInterval::createFromDateString('1 month'); $period = new DatePeriod($start, $interval, $end); //print_r($interval); foreach ($period as $dt) { $date = $dt->format("Y-m-d"); print $date.'<br>'; $firstDate = $date."-15"; $secondDate = $date."-28"; if((strtotime($endDate) >= strtotime($firstDate)) && (strtotime($startDate) <= strtotime($firstDate))) $res[] = $firstDate; if((strtotime($endDate) >= strtotime($secondDate)) && (strtotime($startDate) <= strtotime($secondDate))) $res[] = $secondDate; } print_r($res);

preferences:
115.73 ms | 402 KiB | 5 Q