un metodo brutale può essere...
Codice PHP:
function listaorari ($from, $to, $gap) {
// $from = orario inizio (es. '18:00') nel formato HH:MM
// $to = orario fine (es. '20:30') nel formato HH:MM
// $gap = intervallo in minuti (es. 30 = 30 minuti)
$listaorari = array();
$f = substr($from, 0, 2)*60+substr($from, 3, 2);
$t = substr($to, 0, 2)*60+substr($to, 3, 2);
for ($i = $f; $i<=$t; $i+=$gap) {
$n = intval($i / 60);
$o = str_pad($n, 2, '0', STR_PAD_LEFT).':'.str_pad($i-$n*60, 2, '0', STR_PAD_LEFT);
$listaorari[] = $o;
};
return ($listaorari);
};
// ESEMPIO:
var_export(listaorari('18:00', '20:30', 30));