В общем, надоело, сделал все как говорил автор предыдущего ответа в самом 1 сообщение, только слегка доработал:
/// Уроки за день
$body .= '<table id="lessons-per-day">
<tr style="border-top:none;">
<td style="text-align:center;" colspan="500">
'.date('d.m ',$time1).'<b>'.$_weekDN[date('w', $time1)]['title'].'</b>
</td>
</tr>';
for ($i = $time1; $i <= $time2; $i += 1800) {
$d = date('Y-m-d-H-i', $i);
$settime = date('H:i', $i);
$st = explode(':',$settime);
if ($st[1] == '30'){
$body .= '<tr>';
} else {
$body .= '
<tr>
<td style="width:80px;padding:2px;border:1px solid #e7eaec;text-align:center;vertical-align:top;" rowspan="2">'.$settime.' </td>';
}
$body .= '<td style="border:1px solid #e7eaec;height:5px;"></td></tr>';
}
$body .= '</table>
<div class="lessons-per-group" id="mask-per-day">
<div class="lessons-per-grid-day">
<div class="lessons-per-time"></div>
<div class="lessons-per-content">';
$z = 2;
for ($i = $time1; $i <= $time2; $i += 1800) {
$body .= '<div class="lessons-per-writes">';
$d = date('Y-m-d-H-i', $i);
if (isset($lessons[$d])) {
foreach($lessons[$d] as $lesson){
$z++;
$height = $lesson['duration'] / 30 * 22;
$time_end = $lesson['time'] + $lesson['duration'] * 60;
$body .= '
<div class="lessons-per-blocks">
<div class="body-table-block-lesson" style="height:'.$height.'px;border-color:'.$_LTYPES[$lesson['type']]['color'].';z-index:'.$z.';" data-admin="'.$lesson['admin'].'" data-user="'.$lesson['user'].'" data-type="'.$lesson['type'].'" data-status="'.$lesson['status'].'" data-lessonid="'.$lesson['id'].'">
<b>'.$_LSTATUSVG[$lesson['status']].' '.$_LTYPES[$lesson['type']]['title'].'</b> ('.date('H:i',$lesson['time']).' - '.date('H:i',$time_end).')
'.$lsinfo.'
</div>
</div>';
}
}
$body .= '</div>';
}
$body .= '</div>
</div>
</div>';
Вот такие стили:
.lessons-per-content{
position: relative;
}
.lessons-per-writes{
height: 22px;
display: flex;
justify-content: space-between;
}
.lessons-per-blocks{
flex: 1;
position: relative;
}
.body-table-block-lesson{
position: absolute;
width: 100%;
border-width: 1px;
padding: 1px;
overflow: hidden;
border-bottom-width: 6px;
box-sizing: border-box;
border-style: solid;
background-color: white;
border-bottom-left-radius: 5px;
font-size: 0.8em;
}
Ну и финальная картина:
Не пуля в пулю - но структура сохранилась. Предложу еще при наведении, поднимать z-index до 200, чтобы урок был выше остальных. Буду сдавать сегодня... надеюсь, удовлетворю заказчика.