3v4l.org

run code in 300+ PHP versions simultaneously
<?php $fromDate = explode("-", '2017-03-31'); $toDate = explode("-", '2017-05-14'); $start = new DateTime('2017-03-31'); $end = new DateTime('2017-05-14'); $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('2017-05-14') >= strtotime($firstDate)) && (strtotime('2017-03-31') <= strtotime($firstDate))) $res[] = $firstDate; if((strtotime('2017-05-14') >= strtotime($secondDate)) && (strtotime('2017-03-31') <= strtotime($secondDate))) $res[] = $secondDate; } print_r($res);
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
2017-03-31<br>2017-05-01<br>Array ( [0] => 2017-03-31-15 [1] => 2017-03-31-28 [2] => 2017-05-01-15 [3] => 2017-05-01-28 )

preferences:
186.61 ms | 404 KiB | 217 Q