.Когда-то выполнял такую задачу. Конечный результат так и не могу найти, а вот файлы наброски умудрился найти какимто образом. Может поможет направить в нужное русло.
<?php
$startwork='09:00:00'; //Начало работы
$endwork='9'; //количество часов рабочих
$dayw=date("w", strtotime($_SESSION['startday']));
for($i=0; $i < 7; $i++) {
if ($dayw>='7') { $dayw='0'; }
$date = date('d-m-Y', strtotime($_SESSION['startday'].'+'.$i.' day'));
if ($dayw!="0" or $dayw!="6") {
if ($dayw=="1") { $daywt="Понедельник";
} elseif ($dayw=='2') { $daywt="Вторник";
} elseif ($dayw=='3') { $daywt="Среда";
} elseif ($dayw=='4') { $daywt="Четверг";
} elseif ($dayw=='5') { $daywt="Пятница";
} elseif ($dayw=='6') { $dayw++; continue; $daywt="Суббота";
} elseif ($dayw=='0') { $dayw++; continue; $daywt="Воскресенье";
}
echo ($daywt."<br>".$date."<br>");
$a=0; //Переменная для цикла считает часы
$time=$startwork; //Переменная для цикла начало времени
while ($a<=$endwork) {
$STH = $mysqlcon->query("SELECT * from ".$bookdb." WHERE (datestart<='".$datesearch."' AND dateend>='".$datesearch2."')");
$num_rows = $STH->rowCount();
if ($num_rows=='0') {
echo ('Свободно<br>');
} else {
echo ('Занято<br>');
}
$time = date('H:i:s', strtotime($time.'+30 minute'));
$a=$a+0.5; // Бронирование ставится на каждые пол часа
}
}
$dayw++;
}
?>
Если как-то доработаешь, поделись пожалуйста. Очень жалею что потерял полный исходник :(
}