3v4l.org

run code in 300+ PHP versions simultaneously
<?php $_POST['s1'] = '16.15'; $_POST['s2'] = '23.30'; $wagesLookup = [ '18:00' => 146 / 4, // morning '22:00' => 204 / 4, // evening '24:00' => 244 / 4 // night ]; $period = new DatePeriod( DateTime::createFromFormat('H.i', $_POST['s1']), new DateInterval('PT15M'), DateTime::createFromFormat('H.i:01', "{$_POST['s2']}:01") // bump ahead to make "inclusive" ); $total = 0; foreach ($period as $dt) { $time = $dt->format('H:i'); foreach ($wagesLookup as $mark => $pay) { if ($time <= $mark) { break; } } printf("%s earned %.02f\n", $dt->format('H:i'), $pay); $total += $pay; } echo "Total: $total";

preferences:
26.52 ms | 404 KiB | 5 Q