IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

fullcalendar timezone


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2018
    Messages : 10
    Points : 13
    Points
    13
    Par défaut fullcalendar timezone
    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 :
    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"
      },
    COTE JSCRIPT :
    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));
    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
    4
     
    Date brute : Fri Aug 07 2020 12:00:00 GMT+0200 (heure d’été d’Europe centrale)
    vstart = 07/08/2020 14:00
    vstart2 = 07/08/2020 14:00
    Je suis perdu, pourriez vous m'aider svp ?


    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;        
        }
    }
     
    ?>

  2. #2
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    bonsoir, as tu essayé ceci ? https://www.php.net/manual/fr/functi...mezone-set.php en mettant Europe/paris

Discussions similaires

  1. JQuery FullCalendar Gerer la TimeZone GMT
    Par silverfab34 dans le forum jQuery
    Réponses: 3
    Dernier message: 24/08/2010, 09h26
  2. Problème de timezone par défaut
    Par TiVoye dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 10/07/2009, 09h48
  3. timezone paris france
    Par franfr57 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 22/06/2007, 16h21
  4. Réponses: 2
    Dernier message: 23/01/2007, 12h01
  5. recherche des informations de timezones
    Par Spoutnik dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/10/2006, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo