Afficher la date et l'heure

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

  • [RÉGLÉ] Afficher la date et l'heure

    Mais qu'est-ce que c'est bête; mais qu'est-ce que c'est bête... et pourtant... je n'y arrive pas

    Je ne parviens pas à ce que Joomla (PHP) me donne l'heure exacte. Mon petit bout de code ci-dessous me donne l'heure -1 càd qu'il est actuellement 11:33 et il me donne 10:33. Ok, c'est un soucis avec l'heure d'été / d'hiver oui mais comment lui dire que je veux l'heure d'été ?

    Code PHP:
    $app =& JFactory::getApplication();
    $date JFactory::getDate();
    $date->setOffset($app->getCfg('offset'));
          
    echo 
    $date->toFormat('%Y-%m-%d %H:%M:%S'); 
    J'ai essayé un très grand nombre de snippets trouvé sur le net mais rien n'y fait. Il tient bien compte du timezone définit au niveau de mon utilisateur (GMT +1, +5 , ...) mais pas heure d'été / heure d'hiver.

    Si quelqu'un avait une bougie ...

    Merci
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

  • #2
    Re : Afficher la date et l'heure

    bonjour

    j'ai pas essayer mais je pense à $date->toISO8601
    Dernière édition par khadimoukoum à 21/04/2011, 14h35
    Connaitre son ignorance est la meilleure part de la connaissance.

    Commentaire


    • #3
      Re : Afficher la date et l'heure

      Cela semble parfaitement répondre à mon besoin !!! Je teste cela demain.

      Merci pour le tutoriel et désolé de ne pas l'avoir vu. Mes recherches incluaient le mot cléf "Joomla" et google ne m'a visiblement pas retourné ton site.

      Thanks
      Christophe (cavo789)
      Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
      Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

      Commentaire


      • #4
        Re : Afficher la date et l'heure

        Grrrr

        Je suis probablement fatigué mais je n'y arrive toujours pas. Mais pourquoi diable est-il si compliqué en PHP de dire "Affiche moi la date et l'heure" ?

        Code PHP:
        $app =& JFactory::getApplication();
        $date JFactory::getDate();
        $date->setOffset($app->getCfg('offset'));
        echo 
        $date->toISO8601(true); 
        Alors qu'il est 23:20, ce code m'affiche : 2011-04-22T22:20:00+01:00

        Okido; il m'a pris bien l'heure de mon utilisateur Joomla (Bruxelles soit +1h00). Okido; il me dit bien que nous sommes en heure d'été (+01:00) mais ce que je voudrais c'est bien un affichage 23h00 et pas 22h00+01h00.

        But : j'ai un évènement qui débute le 22 Avril à 23:00. Est-ce que la date de début est dans le passé ou dans le futur ? Juste comparer une date stockée dans une variable avec Now().

        Je continue à chercher mais grrr, comment peut-on perdre autant de temps sur une telle bêtise.
        Christophe (cavo789)
        Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
        Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

        Commentaire


        • #5
          Re : Afficher la date et l'heure

          J'abandonne JDate et j'opte pour

          Code PHP:
          date("Y-m-d H:i:s",time()); 
          Il me retourne 00:37 alors qu'il est effectivement 00:37.

          Pas convaincu que ce soit une bonne solution parce que je ne tiens pas compte du timezone de mon utilisateur; tel que définit dans Jooma mais crotte de bique, j'ai passé assez de temps là-dessus.
          Christophe (cavo789)
          Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
          Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

          Commentaire


          • #6
            Re : Afficher la date et l'heure

            Après m'y être repris une fois encore, j'ai enfin pû comprendre l'astuce et maintenant c'est OK. Oufti! Quelle misère ce fût !

            L'article qui m'a été utile est "Working with dates in Joomla!" de Webamoeba.

            Il faut d'abord récupérer le timezone du site et, si mentionné, celui de l'utilisateur.

            Code PHP:

            // Timezone du site

            $config =& JFactory::getConfig();
            $this->_tmzOffset $config->getValue('config.offset');
                     
            // Retrouve le timezone de l'utilisateur.  Si présent, le timezone de l'utilisateur est utilisé.
                     
            $user =& JFactory::getUser();         
            if (
            $user->get('guest')==0) { $this->_tmzOffset  $user->getParam('timezone'); } 
            Au moment de stocker le champs date dans la base de données, il faut faire :

            Code PHP:
            $dte 'la valeur' // p.e. '2011-05-27 15:00'

            // Le second paramètre va retrancher le timezone pour obtenir une heure en UTC.   
            // Dans le cas d'un site en TMZ +1 (Bruxelles, Paris, ...); la $valeur retournée sera '2011-05-27 14:00'  (-1 heure donc)

            $dte=JFactory::getDate($dte$this->_tmzOffset);

            // Converti la date pour sauvegarde.   $local doit être false afin de garder notre heure en UTC.

            $champs $dte->toMySQL($local=false); 
            Au moment d'afficher la date :

            Code PHP:

            $dte 
            'la valeur lue dans la base de données' // p.e. '2011-05-27 14:00'

            $date JFactory::getDate($dte); 

            // Ajoute notre timezone

            $date->setOffset($this->_tmzOffset);

            // Affichage : 

            echo $date->toFormat(JText::_('%d/%m/%Y %H:%M')); 
            La date est donc stockée dans la base de données en UTC et, au moment de son affichage, elle s'affiche dans le timezone de l'utilisateur. Vous pouvez faire le test en créant un utilisateur TMZ +1, un autre TMZ + 3:30, un autre TMZ -6; à chaque fois l'affichage est correct.

            Idem si votre utilisateur crée un record. Son TMZ est retranché et l'heure stockée est UTC.

            (cela semble si simple et pourtant, ce fût galère )
            Christophe (cavo789)
            Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
            Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

            Commentaire

            Annonce

            Réduire
            Aucune annonce pour le moment.

            Partenaire de l'association

            Réduire

            Hébergeur Web PlanetHoster
            Travaille ...
            X