setTimezone(new DateTimeZone('UTC')); $end->setTimezone(new DateTimeZone('UTC')); // recherche des évènement en BDD avec ceci: // WHERE end >= :start AND start <= :end // on prend les évènements se finissant après le début // ou commençant avant la fin de la fourchette // affichage format ISO à l'heure UTC //$date->format('Y-m-d\TH:i:s\Z'); // chatgpt suggère l'utilisation d'un DTO => une classe de données simple et tout "public" // => pour des évènements obtenables autant depuis la BDD que de fichiers .ics par exemple $events = [ [ 'id' => 1, 'title' => 'Évènement1', 'start' => '2025-06-03T05:00:00Z', // Z indique que l'heure est en UTC 'end' => '2025-06-03T09:00:00Z', 'allDay' => false, 'color' => '#ffa500', // couleur hexa, éviter les couleurs CSS qui ne fonctionnent pas dans value="" en HTML //'url' => 'https://dev.nageurs-bigoudens.fr', // comportement: https://fullcalendar.io/docs/eventClick 'description' => 'blablabla', ], [ 'id' => 2, 'title' => 'Évènement2', 'start' => '2025-06-06T08:00:00Z', 'end' => '2025-06-07T08:00:00Z', 'allDay' => false, 'color' => '#e01b24', 'description' => 'truc machin', ], [ 'id' => 3, 'title' => 'Évènement3', 'start' => '2025-06-08', 'end' => '2025-06-09', 'allDay' => true, // pas d'heure 'color' => '#008000', 'description' => 'ça va chier', ], // provoque une erreur, si allDay la fin ne peut être égale au début /*[ 'id' => 4, 'title' => 'Évènement4', 'start' => '2025-06-09', 'end' => '2025-06-09', 'allDay' => true, 'color' => '#1a5fb4', ],*/ ]; header('Content-Type: application/json'); echo json_encode($events); die; } // actions sur le calendrier elseif(isset($_SESSION['admin']) && $_SESSION['admin'] === true && $_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['CONTENT_TYPE'] === 'application/json') { $data = file_get_contents('php://input'); $json = json_decode($data, true); if($_GET['action'] === 'new_event'){ // BDD //print_r($json);die; $id = 7; // généré par la BDD echo json_encode(['success' => true, 'id' => $id]); } elseif($_GET['action'] === 'update_event'){ // BDD //print_r($json);die; echo json_encode(['success' => true]); } elseif($_GET['action'] === 'remove_event'){ // BDD //echo $json['id']; die; echo json_encode(['success' => true]); } else{ echo json_encode(['success' => false]); } die; }