3v4l.org

run code in 300+ PHP versions simultaneously
<?php function setting($v) { $db = [ 'opening_time_Sunday' => '10:30', 'closing_time_Sunday' => '00:00', 'opening_time_Monday' => '09:30', 'closing_time_Monday' => '01:30', 'opening_time_Tuesday' => '09:30', 'closing_time_Tuesday' => '01:30', 'opening_time_Wednesday' => '09:30', 'closing_time_Wednesday' => '01:30', 'opening_time_Thursday' => '09:30', 'closing_time_Thursday' => '01:30', 'opening_time_Friday' => '09:30', 'closing_time_Friday' => '23:00', 'opening_time_Saturday' => '10:30', 'closing_time_Saturday' => '00:00', ]; return $db[$v]; } function Today($dateString = null) { $currentDate = new \DateTimeImmutable($dateString); $priorDate = $currentDate->sub(new \DateInterval('P1D')); $yesterday = $priorDate->format('l'); $priorClosing = setting('closing_time_' . $yesterday); $closeDate = $currentDate->setTime(...explode(':', $priorClosing)); if ($closeDate->format('a') === 'am' && $currentDate < $closeDate) { //check if the the closing has not occurred yet $currentDate = $priorDate; } $today = $currentDate->format('l'); $start = setting('opening_time_' . $today); $end = setting('closing_time_' . $today); return $today . ': ' . $start . " - " . $end; } $dates = []; for ($i=0;$i<7;$i++) { $date = \date_create('2018-10-08'); if ($i > 0) { $date->modify('+' . $i . ' day'); } $dates[$date->format('l')] = [ '00:15' => Today($date->setTime(0, 15)->format('Y-m-d H:i:s')), '23:00' => Today($date->setTime(23, 0, 0)->format('Y-m-d H:i:s')) ]; } echo "Day \t|\t00:15:00\t\t\t|\t23:00:00\n"; foreach($dates as $day => $times) { echo "$day \t|\t{$times['00:15']} \t|\t{$times['23:00']}\n"; }

preferences:
181.94 ms | 405 KiB | 5 Q