Date de naissance (DOB Utilisateur) erronée lors d'un request PHP - profile['dob']

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

  • [RÉGLÉ] Date de naissance (DOB Utilisateur) erronée lors d'un request PHP - profile['dob']

    Bonjour,
    Lors que j'accède en PHP à la date de naissance d'un Profil UTILISATEUR. Il y a une erreur d'un jour sur le retour PHP :
    Date de naissance dans le profil utilisateur = 10 mars 1981 (saisie avec le calendrier Joomla ou manuellement)
    >>> Retour PHP = 1981-03-09

    Je suis en Joomla 3.9.10 et PHP 7.2.21, Fuseau horaire de Paris

    Code PHP utilisé pour lire la "Date de naissance (DOB)" de l'utilisateur (Profile) :
    Code PHP:
    <?php
    $profile 
    JUserHelper::getProfile($user->id);
    $profile $profile->profile['dob'];
    $profile strstr($profile' 'true);
    echo 
    $profile;
    ?>
    Merci de votre aide,
    Dernière édition par vcmb à 10/08/2019, 19h06

  • #2
    Hello.

    La rubrique DOB dans la base de donnée doit être du type datetime.

    C'est un problème de conversion de l'heure selon fuseau horaire de l'internaute en UTC, car pour l’internationalisation, Joomla stocke les heures en UTC.

    Par exemple, la conversion de 10/03/1981 à 00H, donne actuellement 09/03/1981 22H en UTC.

    Si tu ne fais pas la conversion inverse lors de l'affichage tu auras donc 09/03/1981 selon l'exemple ci-dessus.

    Pour une date simple (donc sans les heures) il faut que ta rubrique DOB soit du type date et non datetime (pour une date de naissance c'est mieux) pour éviter ce problème.
    Sinon il faut que tu convertisses selon le fuseau de l'internaute courant par exemple avec le framework de Joomla :
    Code PHP:
      echo JHtml::_('date'$profile->profile['dob'], 'd-m-Y'); 

    Voir : https://ordi-genie.com/joomla/develo...-et-les-heures
    Dernière édition par roland_d_alsace à 10/08/2019, 11h01
    vcmb et woluweb aiment ceci.
    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
    Rejoignez le Joomla Users Groupe Alsace...
    roland_d_alsace va-t-il devenir roland_du_grand_est ?

    Commentaire


    • #3
      Bonjour Roland,
      Super, c'est parfait, j'ai maintenant la bonne date d'anniversaire.

      Mon nouveau code :
      Code PHP:
      <?php
      $profile 
      JUserHelper::getProfile($user->id);
      echo 
      JHtml::_('date'$profile->profile['dob'], 'd/m/Y');
      ?>

      Dans le formulaire BreezingForms - champ Valeur (code PHP avec return en lieu de echo) :
      <?php
      $profile 
      JUserHelper::getProfile($user->id);
      return 
      JHtml::_('date'$profile->profile['dob'], 'd/m/Y');
      ?>
      Merci de vote aide
      Dernière édition par lesoutier à 10/08/2019, 14h52

      Commentaire


      • #4
        erreur dans ma reponse

        Commentaire


        • #5
          Si le problème est réglé merci de l'indiquer.
          Pour cela voir l'encadré ci-dessous.
          vcmb aime ceci.
          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

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X