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'); $priorOpening = setting('opening_time_' . $yesterday); $priorClosing = setting('closing_time_' . $yesterday); $priorOpenDate = $priorDate->setTime(...explode(':', $priorOpening)); $closeDate = $currentDate->setTime(...explode(':', $priorClosing)); $diff = $priorOpenDate->diff($closeDate); if ($diff->d === 0 && $currentDate < $closeDate) { //check if 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"; }
Output for 5.6.38, 7.1.0 - 7.1.22, 7.2.0 - 7.2.33, 7.3.16 - 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.4, 8.3.6 - 8.3.7
Day | 00:15:00 | 23:00:00 Monday | Monday: 09:30 - 01:30 | Monday: 09:30 - 01:30 Tuesday | Monday: 09:30 - 01:30 | Tuesday: 09:30 - 01:30 Wednesday | Tuesday: 09:30 - 01:30 | Wednesday: 09:30 - 01:30 Thursday | Wednesday: 09:30 - 01:30 | Thursday: 09:30 - 01:30 Friday | Thursday: 09:30 - 01:30 | Friday: 09:30 - 23:00 Saturday | Saturday: 10:30 - 00:00 | Saturday: 10:30 - 00:00 Sunday | Sunday: 10:30 - 00:00 | Sunday: 10:30 - 00:00
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Day | 00:15:00 | 23:00:00 Monday | Monday: 09:30 - 01:30 | Monday: 09:30 - 01:30 Tuesday | Monday: 09:30 - 01:30 | Tuesday: 09:30 - 01:30 Wednesday | Tuesday: 09:30 - 01:30 | Wednesday: 09:30 - 01:30 Thursday | Wednesday: 09:30 - 01:30 | Thursday: 09:30 - 01:30 Friday | Thursday: 09:30 - 01:30 | Friday: 09:30 - 23:00 Saturday | Saturday: 10:30 - 00:00 | Saturday: 10:30 - 00:00 Sunday | Sunday: 10:30 - 00:00 | Sunday: 10:30 - 00:00

preferences:
169.26 ms | 403 KiB | 173 Q