Fabrik 4 et calculs de dates

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Fabrik 4 et calculs de dates

    Bonjour,

    Après migration d'un site Fabrik en version J4, j'ai un problème de calcul incorrect pour les dates.
    Par exemple, que ce soit avec le plugin date ou avec jdate, je veux calculer la date du prochain dimanche.

    Le code utilisé est
    Code:
    date_default_timezone_set('UTC');
    return date('Y-m-d',strtotime('next Sunday'));​

    En version J3 du site, le calendrier se positionne bien sur la date de demain, le 11. En version J4, elle reste à aujourd'hui !
    Pour que la bonne date soit définie en J4, il faut que j'ajoute "+1 day" ou que je demande "next Monday" et non "next Sunday".

    La version de PHP est 8.1 pour les deux sites.

    Qui aurait une idée de la cause de cette erreur et de sa correction ?
    Merci d'avance !
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

  • #2
    Bonjour,

    Je viens d'installer Fabrik 4 delta sur un site de test J! 4.3.2 et de créer liste, formulaire, groupe, éléments pour afficher un choix de date, avec le même code pour afficher la date du prochain dimanche.
    Nous sommes dimanche 11, le prochain devrait être le 18, mais le calendrier renvoie la date du 17 !
    Même comportement avec les plugins date et jdate : l'erreur est-elle dans mon code (qui pourtant est correct sous J3) ou dans les plugins ? Comment le savoir ?
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

    Commentaire


    • #3
      Tu n'aurais pas quelque part un paramètre indiquant le début de la semaine le dimanche (comme nos voisins d'outre-manche) au lieu du lundi ?
      Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide.
      Confucius

      Commentaire


      • #4
        Bonjour et merci,

        Le plugin jdate n'a pas un tel paramétrage. Le plugin date en a un mais que le premier jour soit samedi, dimanche ou lundi, la date est invariablement celle de samedi prochain !
        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

        Commentaire


        • #5
          Bon, j'ai trouvé une solution, modifier la ligne "return" en ajoutant une référence à l'heure :
          Code:
          date_default_timezone_set('UTC');
          return date('Y-m-d h:i:s',strtotime('next Sunday'));​
          Il faut maintenant que je trouve si dans le JavaScript il y a des modifications à faire, parce que sur le site qui m'intéresse, un calcul définit automatiquement le samedi qui suit. Avec la modification en question, ça fonctionne au premier chargement, mais plus si je change la date d'arrivée à une date ultérieure, la date de départ reste inchangée. Et le JavaScript n'est pas ce que je préfère...
          "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
          MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

          Commentaire


          • #6
            Bonjour,

            Finalement, après avoir eu des anomalies avec le plugin jdate, je suis passé au plugin date.
            J'ai maintenant pu gérer par JavaScript les dates par défaut d'arrivée (un dimanche) et de départ (le samedi suivant). J'ai aussi pu désactiver également par JavaScript les dates antérieures à ce premier dimanche pour les arrivées et avant le premier samedi pour les départs.

            En allant plus loin, je désactive l'utilisation des jours autres que samedi et dimanche (à confirmer...) :
            Code:
            var diff = new Date(this.get('value')).compare(new Date(date));
            
            if ((diff <- 1) ) {
               var result = false;
            
            } else {
              var d = new Date(this.get('value'));
              var quantday = d.getDay();
              if ((quantday == 6) || (quantday ===0)){
                var result = false;
              } else {
                var result = true;
              }
            }​​
            Je dois dire que j'ai eu du mal...
            Il faut maintenant que je trouve un moyen d'ajouter une classe pour différencier clairement les jours sélectionnables des autres.
            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X