3v4l.org

run code in 300+ PHP versions simultaneously
<?php function ex_datetime($time) { $dateNow = new DateTimeImmutable($time, new DateTimeZone('Europe/London')); $dateCutOff = $dateNow->setTime(13, 0, 0); // cutoff time of 1PM today $dateDelivery = $dateNow->modify('+7 weekdays'); // standard delivery duration before cutoff $diffCutOff = $dateNow->diff($dateCutOff); // distance from now to 1PM cutoff time today if ($dateNow >= $dateCutOff) { // if 1PM or later $dateDelivery = $dateDelivery->modify('+1 weekdays'); // add one weekday to the delivery date $diffCutOff = $dateNow->diff($dateCutOff->add(new DateInterval('P1D'))); // distance from now to 1PM cutoff time the next day } $del_day = $dateDelivery->format('l jS F'); $hour = $diffCutOff->format('%h') + ($diffCutOff->format('%a') * 24); $min = $diffCutOff->format('%i'); printf('Order Arrives: %s - Order within %s hrs and %s mins%s', $del_day, $hour, $min, PHP_EOL); } ex_datetime('2023-08-11 12:01:00'); ex_datetime('2023-08-11 13:01:00');

preferences:
25.92 ms | 404 KiB | 5 Q