= $endH) { $endH = min(24, $nowHNow + 2); } if ($endH <= $startH) { $endH = min(24, $startH + 2); } } $nowMinutes = ((int)date('G')) * 60 + (int)date('i'); $nowPos = (($nowMinutes / 60) - $startH) / max(1, ($endH - $startH)); $showNow = $nowPos >= 0 && $nowPos <= 1; /* 冲突分列(v30 第 2/4 条):与日程页同一套算法 —— 两条撞车就左右各半。 */ usort($timed, static function (array $a, array $b): int { return strcmp((string)($a['time'] ?? ''), (string)($b['time'] ?? '')); }); $laneInfo = \App\Calendar::conflictLanes($timed); foreach ($timed as $i => &$evRef) { [$l, $w] = $laneInfo[$i] ?? [0.0, 1.0]; $evRef['left'] = round($l * 100, 4); $evRef['width'] = round($w * 100, 4); } unset($evRef); ?>

今天没有安排。

0) { $evEdit = url('calendar/event', ['id' => $evRef, 'embed' => 1]); } elseif ($evKind === 'movie' && $evRef > 0) { $evEdit = url('movies/edit', ['id' => $evRef, 'embed' => 1]); } elseif ($evKind === 'task' && $evRef > 0) { $evEdit = url('tasks/edit', ['id' => $evRef]); } elseif ($evKind === 'anniv' && $evRef > 0) { $evEdit = url('days/edit', ['id' => $evRef, 'embed' => 1]); } ?> '> 全天
0) { $evEdit = url('calendar/event', ['id' => $evRef, 'embed' => 1]); } elseif ($evKind === 'movie' && $evRef > 0) { $evEdit = url('movies/edit', ['id' => $evRef, 'embed' => 1]); } elseif ($evKind === 'task' && $evRef > 0) { $evEdit = url('tasks/edit', ['id' => $evRef]); } elseif ($evKind === 'anniv' && $evRef > 0) { $evEdit = url('days/edit', ['id' => $evRef, 'embed' => 1]); } ?> ' style="background: ; top: %; height: %; left: calc(% + 2px); width: calc(% - 4px);" title="" data-cal="">