Так в базе же st_time - начало, end_time - конец.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.
Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
$day_start = mktime(0, 0, 0, date("d"), date("m"), date("Y")); //Метка времени начала текущих суток
$day_end = mktime(59, 59, 23, date("d"), date("m"), date("Y")); //Метка времени окончания текущих суток
$query = "SELECT unix_timestamp(st_time), unix_timestamp(end_time)
FROM table
WHERE name='Vasya'
AND st_time >= '" . date('Y-m-d H:i:s', $day_start) . "'::TIMESTAMP
AND end_time <= '" . date('Y-m-d H:i:s', $day_end) . "'::TIMESTAMP
ORDER BY st_time";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
if ($day_start < $row['st_time']){
if (!isset($free)){
$free[] = date('Y-m-d H:i:s', $day_start) . " - " . date('Y-m-d H:i:s', ($row['st_time'] - 1));
} else {
$free[] = date('Y-m-d H:i:s', $end) . " - " . date('Y-m-d H:i:s', ($row['st_time'] - 1));
}
}
$end = $row['end_time'];
}