Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compte à rebours

Compter le temps restant entre aujourd'hui et une date enregistré dans la BDD

    5 avril 2006 à 9:43:46

    Bonjour ! ;)

    Par avance si je m'exprime mal, dites-le moi car défois ce que je demande est très confu ! :p
    Alors voilà, je souhaite créer un compte à rebours qui compterai le temps restant entre aujourd'hui et une date enregistrée dans la BDD.

    Est-ce que quelqu'un aurait une idée ou serait comment faire ceci en PHP ? :-° Merci par avence ! :D

    :o Choos
    Amicalement
    Baba0076 ;)
    • Partager sur Facebook
    • Partager sur Twitter
      5 avril 2006 à 11:27:18

      Et bien ton entree en bdd tu l'enregistre sous la forme de timetamps.
      ensuite pour compater voila un exemple:


      $find = mysql_query('SELECT fete_timestamp FROM prochaine_fete');
      $fete = mysql_fetch_array($find);

      $datefinal = explode("/", date('d/m/y H\hi', $fete['fete_timestamp']));
      $datecourante = explode("/", date('d/m/y H\hi', time()));
      $count = 0;
      while($count <= 4)
      {
      $diff[$count] = $datecourante[$count] - $datefinal[$count];
      ++$count;
      }
      echo 'Il reste ' , $diff['0'] , 'Jour(s) ' , $diff['1'] , 'Mois ' , $diff['2'] , 'Annee(s) ' , $diff['3'] , 'Heure(s) ' , $diff['4'] , 'Minutes.';
      • Partager sur Facebook
      • Partager sur Twitter
        5 avril 2006 à 11:33:42

        Ca ne marche pas !
        Voici mon code :

        <p class="texte1" style="text-align:center">
        Salut <?php echo $donneesbann['pseudo']; ?> ! <strong>Tu es banni(e) du site.</strong> Je ne suis absolument pas <strong>FIER</strong> de toi !
        <br /><br />
        Tu as été banni(e) par <strong><?php echo $donneesbann['banniseur']; ?></strong> le <strong><?php echo $donneesbann['time']; ?></strong>.       
        <br />
        Ton IP est <strong><?php echo $donneesbann['ip']; ?></strong>
        <br /><br />
        <img src="images/messages/question_mark.png" alt="qs" />
        Bah euh *glouppps* pk ? J'ai fait quoi ?? :'(<br /><br />
        >> La <strong>raison</strong> de ton bannisement : <br />
        "<?php echo $donneesbann['raison']; ?>"
        <br /><br />
        Tu seras débanni(e) le <strong><?php echo $donneesbann['time_debann'] ?></strong>. (Année-Mois-Jour)<br />
        Nous sommes le <strong><?php echo date('Y-m-d'); ?></strong>. (Année-Mois-Jour)<br />
        <?php
        // On affiche maintenant combien il reste de temps avant d'être débanni(e)
                                                                                       
        $datefinal = explode("/", date('Y-m-d', $donneesbann['time_debann']));
        $datecourante = explode("/", date('Y-m-d', time()));
        $count = 0;
        while($count <= 4)
        {
                $diff[$count] = $datecourante[$count] - $datefinal[$count];
                ++$count;
        }
        echo 'Il reste ' , $diff['0'] , ' Jour(s) ' , $diff['1'] , ' Mois et ' , $diff['2'] , ' Année(s) avant d\'être débanni(e).';
        ?> 


        Dans la bdd j'ai entré les infos suivantes :
        pseudo ip time time_debann banniseur raison
        baba0076 88.121.208.48 4 avril 2006 2006-06-27 le Webmaster Test du script

        J'ai beau changer la date dans la BDD rien n'y fait j'ai toujours :

        Citation : texte

        Salut baba0076 ! Tu es banni(e) du site. Je ne suis absolument pas FIER de toi !

        Tu as été banni(e) par le Webmaster le 4 avril 2006.
        Ton IP est 88.121.208.48

        qs Bah euh *glouppps* pk ? J'ai fait quoi ?? :'(

        >> La raison de ton bannisement :
        "Test du PHPmyBanner"

        Tu seras débanni(e) le 2006-06-27. (Année-Mois-Jour)
        Nous sommes le 2006-04-05. (Année-Mois-Jour)
        Il reste 36 Jour(s) 0 Mois et 0 Année(s) avant d'être débanni(e).



        Il reste 36 Jour(s) ne change pas. Que faire svp, merci.
        • Partager sur Facebook
        • Partager sur Twitter
          5 avril 2006 à 13:52:45

          remplace :

          $datefinal = explode("/", date('Y-m-d', $donneesbann['time_debann']));
          $datecourante = explode("/", date('Y-m-d', time()));



          par :

          $datefinal = explode("-", $donneesbann['time_debann']); // dans ta base c'est deja sous la forme Y-m-d donc pas besoin de la fonction date)
          $datecourante = explode("-", date('Y-m-d', time()));



          Moi c'etais des / car j'avais choisis des / comme separateur dans la variable date.


          Et comme chez toi cela se represent sous la forme annee-mois-jour (alors que j'avais mis jour/mois/annee)
          tu peut aussi modif sa:
          echo 'Il reste ' , $diff['0'] , ' Jour(s) ' , $diff['1'] , ' Mois et ' , $diff['2'] , ' Année(s) avant d\'être débanni(e).';   


          par sa:

          echo 'Il reste ' , $diff['2'] , ' Jour(s) ' , $diff['1'] , ' Mois et ' , $diff['0'] , ' Année(s) avant d\'être débanni(e).';   
          • Partager sur Facebook
          • Partager sur Twitter
            5 avril 2006 à 14:50:17

            Pff, ton code il marche, désolé, si non ça avait l'air bien, mais j'ai formulé autrement sous google et j'ai trouvé un script java :

            <!-- DEBUT DU SCRIPT COMPTE A REBOURS -->
            <!-- Script provenant de http://www.toulouse-renaissance.net/c_outils/ -->
            <script language="JavaScript1.2">

            //Dynamic countdown Script II- © Dynamic Drive (www.dynamicdrive.com)
            //Support for hour minutes and seconds added by Chuck Winrich (winrich@babson.edu) on 12-12-2001
            //For full source code, 100's more DHTML scripts, visit http://www.dynamicdrive.com

            function setcountdown(theyear,themonth,theday,thehour,themin,thesec){
            yr=theyear;mo=themonth;da=theday;hr=thehour;min=themin;sec=thesec
            }

            ////////// CONFIGUREZ LE COMPTEUR CI-DESSOUS //////////////////

            // 1°) Configurez la date dans le futur dans le format ANNEE, MOIS, JOUR, HEURES sur 24h (0=minuit,23=11pm), MINUTES, SECONDES
            setcountdown(<?php echo $donneesbann['annee']; ?>,<?php echo $donneesbann['mois']; ?>,<?php echo $donneesbann['jour']; ?>,<?php echo $donneesbann['heure']; ?>,<?php echo $donneesbann['minutes']; ?>,<?php echo $donneesbann['secondes']; ?>)

            // 2°) Changez les deux textes ci-dessous. Le premier pour annoncer l'évènement, le second qui s'affichera à la fin du compte à rebours.
            var occasion=" que tu sois débanni(e)."
            var message_on_occasion="C'est aujourd'hui que tu vas être débanni(e) !"

            // 3°) Configurez ci-dessous 5 variables pour la largeur, hauteur, la couleur de l'arrière plan, et le style du texte du champ
            var countdownwidth='' // ou une valeur en % comme var countdownwidth='95%'
            var countdownheight=''
            var countdownbgcolor='' // ou une couleur en texte comme : lightyellow
            var opentags='<strong>'
            var closetags='</strong>'

            ////////// NE RIEN EDITER CI-DESSOUS //////////////////

            var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
            var crosscount=''

            function start_countdown(){
            if (document.layers)
            document.countdownnsmain.visibility="show"
            else if (document.all||document.getElementById)
            crosscount=document.getElementById&&!document.all?document.getElementById("countdownie") : countdownie
            countdown()
            }

            if (document.all||document.getElementById)
            document.write('<span id="countdownie" style="width:'+countdownwidth+'; background-color:'+countdownbgcolor+'"></span>')

            window.onload=start_countdown

            function countdown(){
            var today=new Date()
            var todayy=today.getYear()
            if (todayy < 1000)
            todayy+=1900
            var todaym=today.getMonth()
            var todayd=today.getDate()
            var todayh=today.getHours()
            var todaymin=today.getMinutes()
            var todaysec=today.getSeconds()
            var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
            futurestring=montharray[mo-1]+" "+da+", "+yr+" "+hr+":"+min+":"+sec
            dd=Date.parse(futurestring)-Date.parse(todaystring)
            dday=Math.floor(dd/(60*60*1000*24)*1)
            dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
            dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
            dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)
            //if on day of occasion
            if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1&&todayd==da){
            if (document.layers){
            document.countdownnsmain.document.countdownnssub.document.write(opentags+message_on_occasion+closetags)
            document.countdownnsmain.document.countdownnssub.document.close()
            }
            else if (document.all||document.getElementById)
            crosscount.innerHTML=opentags+message_on_occasion+closetags
            return
            }
            //if passed day of occasion
            else if (dday<=-1){
            if (document.layers){
            document.countdownnsmain.document.countdownnssub.document.write(opentags+"L'évènement est déjà arrivé ! "+closetags)
            document.countdownnsmain.document.countdownnssub.document.close()
            }
            else if (document.all||document.getElementById)
            crosscount.innerHTML=opentags+"L'évènement est déjà arrivé ! "+closetags
            return
            }
            //else, if not yet
            else{
            if (document.layers){
            document.countdownnsmain.document.countdownnssub.document.write("Il reste "+opentags+dday+ " jours, "+dhour+" heures, "+dmin+" minutes, et "+dsec+" secondes avant "+occasion+closetags)
            document.countdownnsmain.document.countdownnssub.document.close()
            }
            else if (document.all||document.getElementById)
            crosscount.innerHTML="Il reste "+opentags+dday+ " jours, "+dhour+" heures, "+dmin+" minutes, et "+dsec+" secondes avant "+occasion+closetags
            }
            setTimeout("countdown()",1000)
            }
            </script>
            <!-- FIN DU SCRIPT COMPTE A REBOURS -->


            Tu devrais le tester, c'est génial et entièrement paramétrable ! ;):o:-°
            • Partager sur Facebook
            • Partager sur Twitter
              5 avril 2006 à 16:00:46

              Citation : baba0076

              Pff, ton code il marche, désolé



              T'inquiete aucun probleme je t'avais lancé se script tapé vite fais, sans le tester il aurait tres bien put ne pas fonctionner ^^ .

              Sinon le java semble en effet une meilleur solution car se la permet de faire un compte a rebour dinamique sans refrech :D
              • Partager sur Facebook
              • Partager sur Twitter
                5 avril 2006 à 16:25:57

                Ouais, merci quand à toi et à ton savoir ! ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  5 avril 2006 à 16:32:19

                  Le script donné par Data-x est donc bon ?.. il pourrait m'être utile donc avant de faire une bêtise :)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Compte à rebours

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown