我有一个“事件”的 PHP 数组,只有 1 天,开始和结束时间(未按时间顺序输入)如下:
$events_list = array(
array(
'name' => 'Event B',
'start' => '5:00pm',
'end' => '6:30pm',
),
array(
'name' => 'Event C',
'start' => '3:30pm',
'end' => '5:00pm',
),
array(
'name' => 'Event H',
'start' => '1:15pm',
'end' => '2:45pm',
),
array(
'name' => 'Event I',
'start' => '1:30pm',
'end' => '4:00pm',
),
array(
'name' => 'Event K',
'start' => '4:30pm',
'end' => '5:30pm',
),
array(
'name' => 'Event L',
'start' => '3:15pm',
'end' => '5:00pm',
),
);
我试图在水平时间轴上直观地输出这些事件,如下所示:
[* Event H: 1:15pm-2:45pm *] [* Event L: 3:15pm-5:00pm *][* Event B: 5:00pm-6:30pm *]
[* Event I: 1:30pm-4:00pm *] [* Event K: 4:30pm-5:30pm *]
[* Event C: 3:30pm-5:00pm *]
(请注意,以上绝对不是“按比例绘制”。)
如您所见,当一个事件的开始/结束时间重叠时,它需要移动到下面的下一行。
但是,我很难想出一种方法来实现这一点,尤其是当一个事件的开始/结束时间与其他 2 个事件重叠时(例如,K 的开始与“事件 L”重叠,而 K 的结束与“事件 B”重叠) ,导致它向下移动 2 行而不是 1 行。
这感觉是一个相当大的挑战。非常感谢任何想法或建议!