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($from02)*60+substr($from32);
  
$t substr($to02)*60+substr($to32);
  for (
$i $f$i<=$t$i+=$gap) {
    
$n intval($i 60);
    
$o str_pad($n2'0'STR_PAD_LEFT).':'.str_pad($i-$n*602'0'STR_PAD_LEFT);
    
$listaorari[] = $o;
  };
  return (
$listaorari);
};

// ESEMPIO:
var_export(listaorari('18:00''20:30'30));