3v4l.org

run code in 300+ PHP versions simultaneously
<?php $period_durations = [ 'every_2_hours' => 2, 'every_4_hours' => 4, 'every_8_hours' => 8, ]; $period = 'every_8_hours'; $hour = (int) date('G'); $duration = $period_durations[$period]; $hour = ((int)($hour/$duration)+1)*$duration; // drop remainder var_dump($hour); $dateTime = new DateTime(); $dateTime->setTime($hour, 0, 0); print_r($dateTime);

preferences:
51.12 ms | 402 KiB | 5 Q