3v4l.org

run code in 300+ PHP versions simultaneously
<?php $recur = 'FREQ=WEEKLY;BYDAY=TU'; $ex = explode(';', $recur); $freq = str_replace('FREQ=','',$ex[0]); $day = str_replace('BYDAY=','',$ex[1]); $dates = []; switch ($freq) { case 'WEEKLY': $date = new DateTime(); // set to correct day obvs $dates[] = $date; for ($x = 0; $x <= 52; $x ++) { $date = clone $date; $date->modify('+1 week'); $dates[] = $date; } break; } foreach($dates as $date) { echo $date->format('Y-m-d')."\n"; }

preferences:
27.85 ms | 405 KiB | 5 Q