format('Ymd'); // Nur zukünftige Termine anzeigen $future_events = array_filter($events, function ($event) use ($today) { return isset($event['DTSTART']) && $event['DTSTART'] >= $today; }); // --- Deutsche Monatsnamen --- $de_months = [ '01' => 'Januar', '02' => 'Februar', '03' => 'März', '04' => 'April', '05' => 'Mai', '06' => 'Juni', '07' => 'Juli', '08' => 'August', '09' => 'September', '10' => 'Oktober', '11' => 'November', '12' => 'Dezember', ]; // --- Gruppierung aller Termine nach Jahr und Monat für die Sidebar --- function group_events_by_year_month($events) { $grouped = []; foreach ($events as $event) { if (!isset($event['DTSTART'])) { continue; } $date = $event['DTSTART']; $year = substr($date, 0, 4); $month = substr($date, 4, 2); $grouped[$year][$month][] = $event; } krsort($grouped); // Jahre absteigend foreach ($grouped as &$months) { krsort($months); // Monate absteigend } return $grouped; } $all_events_grouped = group_events_by_year_month($events); // --- Filter aus URL --- $filter_jahr = $_GET['jahr'] ?? null; $filter_monat = $_GET['monat'] ?? null; if ($filter_jahr && $filter_monat) { $filtered_events = array_filter($events, function ($event) use ($filter_jahr, $filter_monat) { $date = $event['DTSTART'] ?? ''; return substr($date, 0, 4) === $filter_jahr && substr($date, 4, 2) === $filter_monat; }); } elseif ($filter_jahr) { $filtered_events = array_filter($events, function ($event) use ($filter_jahr) { $date = $event['DTSTART'] ?? ''; return substr($date, 0, 4) === $filter_jahr; }); } else { $filtered_events = $future_events; } ?>
Keine Termine gefunden.
Datum Uhrzeit Titel
ganztägig