2 votes

FullCalendar envoie une valeur de début et de fin étrange au serveur pour récupérer les événements

Je suis en train d'essayer d'utiliser le plugin FullCalendar v5 pour ajouter un calendrier sur mon site web. Je veux récupérer les événements en utilisant une requête AJAX.

Voici ce que j'ai fait

let calendarElement = document.getElementById('calendarElement');

let calendar = new FullCalendar.Calendar(calendarElement, {
            initialView: 'dayGridMonth',
            aspectRatio: 2.0,
            headerToolbar: {
                left: 'prev,next',
                center: 'title',
                end: 'dayGridMonth,timeGridWeek,listWeek, today prev,next'
            },
            weekNumbers: false,
            lazyFetching: false,
            events: {
                url: '/events',
                method: 'GET',
                startParam: 'start', // Je m'attends à ce que ce soit toujours le début du mois
                endParam: 'end', // Je m'attends à ce que ce soit toujours la fin du mois
                failure: function (e) {
                    console.log(e);
                }
            }
        });

calendar.render();

Cependant, les valeurs envoyées au serveur semblent avoir les mauvaises valeurs de début/fin. /events?start=ValeurDeDébut&end=ValeurDeFin

Si je regarde les événements du mois de février, je m'attends à ce que le plugin envoie une requête GET au serveur avec la valeur 2/1/2022 00:00:00 pour le début et `2/28/2022 23:59:59' pour la date de fin.

Cependant, le plugin semble envoyer une plage bizarre au serveur. Le plugin envoie la valeur 1/30/2022 5:00:00 AM comme valeur de début et 3/13/2022 5:00:00 AM comme valeur de fin. Le fuseau horaire de mon PC est -5 par rapport à l'UTC, ce qui explique les 5 heures. Mais je m'attendrais à ce que la valeur de fin soit 2/28/2022 et non 3/13/2022

Comment puis-je résoudre ce problème afin que le plugin envoie la plage exacte basée sur la vue de l'utilisateur?

Voici une image du calendrier

enter image description here

0voto

ADyson Points 20642

Il n'envoie pas la première date du mois, il envoie la première date qui est visible dans la vue, afin de ne rien omettre. Par exemple, pour février 2022, selon votre capture d'écran, la première date visible est le 30 janvier. Il en va de même pour la date de fin.

Cependant, si vous définissez l'option showNonCurrentDates sur false:

showNonCurrentDates: false

dans la configuration de votre calendrier, alors il ne affichera aucune date en dehors du mois en cours lorsque vous utilisez la vue mensuelle - elles seront grises. Et comme aucun événement ne sera affiché en elles, le calendrier n'inclut pas ces dates dans la plage qu'il envoie dans les paramètres de la requête AJAX - à la place, il utilise le début exact et la fin du mois.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X