3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo mtx_api_minutes_to_hours_format(0), "\n"; echo mtx_api_minutes_to_hours_format(1), "\n"; echo mtx_api_minutes_to_hours_format(10), "\n"; echo mtx_api_minutes_to_hours_format(60), "\n"; echo mtx_api_minutes_to_hours_format(61), "\n"; echo mtx_api_minutes_to_hours_format(62), "\n"; echo mtx_api_minutes_to_hours_format(74), "\n"; echo mtx_api_minutes_to_hours_format(120), "\n"; echo mtx_api_minutes_to_hours_format(121), "\n"; function mtx_api_minutes_to_hours_format(int $minutes): string { if ($minutes < 60) { return mtx_api_format_plural($minutes, '@count minute', '@count minutes'); } if (!$remaining_minutes = $minutes % 60) { return mtx_api_format_plural(intdiv($minutes, 60), '@count hour', '@count hours'); } return format_string('!hours !minutes', [ '!hours' => mtx_api_format_plural(intdiv($minutes, 60), '@count hour', '@count hours'), '!minutes' => mtx_api_format_plural($remaining_minutes, '@count minute', '@count minutes'), ]); } function mtx_api_format_plural($count, $singular, $plural) { return $count == 1 ? "$count $singular" : "$count $plural"; } function format_string($string, array $args = array()) { return strtr($string, $args); }

preferences:
16.24 ms | 405 KiB | 5 Q