Bonjour,
j'ai mis en place fullcalendar (sans passer par le bundle tattali) et tout fonctionne bien pour l'ajout, maj et suppression.
Les champs date sont end datetime dans ma BDD.
Dans ma BDD tout est correct, et quand je saisi ou modifie un event depuis l'appli, les dates sont correctement enregistrées.
J'utilise un tableau json pour récupérer les évent depuis symfony et quand j'affiche le json pas de soucis, les dates sont bien formatées comme il faut.
Je rencontre plusieurs problème que je ne comprends pas :
- en vue mois (dayGridMonth) toutes mes dates sont décalées de 2h ce qui correspond (à priori) au timezone de Paris heure d'été +02h.
- en vue semaine (hourGridWeek) l'affichage est correct MAIS :
- Quand je selectionne une plage horaire toutes les heures sont décalées de 2h (si je sélectionne 12h-14h par ex, les dates affichées dans un console.log sont 14h-16h).
- Quand je déplace un rdv pour changer les heures, elle sont aussi décalée de 2h.
En revanche quand je clique sur une heure pour placer un rdv, l'heure affichée est correcte.
En recherchant, je me suis rendu compte qu'il y avait sûrement un lien avec le timezone de Fullcalendar.
J'ai donc essayé selon les docs trouvées mais rien à faire. Voici donc un exemple :
RENDU DU JSON :
COTE JSCRIPT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 { "id": 13, "title": "Premier rdv", "start": "2020-08-07T12:00:00+02:00", "end": "2020-08-07T14:00:00+02:00", "description": null, "backgroundColor": "#ff0000" },
Pas de messages d'erreur Jscript et mais console et l'affichage dans le calendar me renvoient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 var vstart = moment(infos.start).tz("Europe/Paris").format("DD/MM/YYYY HH:mm"); var vstart2 = getFormattedDate(new Date(infos.start));
Je suis perdu, pourriez vous m'aider svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Date brute : Fri Aug 07 2020 12:00:00 GMT+0200 (heure dété dEurope centrale) vstart = 07/08/2020 14:00 vstart2 = 07/08/2020 14:00
PS : voici ma fonction chargée de sérializer mes données en JSON :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <?php namespace App\Controller; use App\Repository\BookingRepository; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; class RdvController extends AbstractController { /** * @Route("/rdv/", name="rdv_index", methods={"GET"}) */ public function index(BookingRepository $bookingRepository): Response { $repos=$bookingRepository->findAll(); $repos = $this->get('serializer')->serialize($repos, 'json'); // => avec ou sans ça ne change rien $repos=str_replace("+00:00","+02:00",$repos); $response = new Response($repos); $response->headers->set('Content-Type', 'application/json'); return $response; } } ?>
Partager