decompte secondes en js et jquery

decompte secondes en js et jquery - HTML/CSS - Programmation

Marsh Posté le 08-04-2018 à 10:47:02    

Bonjour a toutes et a tous,  
 
Je souhaite faire un decomptes de seconde entre deux dates mais je n arrive pas a adapter le script js trouvé sur w3s.  
 
J'arrive seulement a afficher les secondes mais ne vont pas au dela de 60.  
 
Pourriez vous m'aider ou me donner des elements de reponses svp ?  
 
Pour l'heure je penche pour une formule incomplete mais je bute dessus/  
 
Merci pour votre aide.  
 
Voici les codes sources :  
 

Code :
  1. <!DOCTYPE html>
  2.   <head>
  3.  <meta charset="utf-8" />
  4.    <title>Rebours</title>
  5.    <link rel="stylesheet" media="screen" type="text/css" title="Style" href="style/styles.css" />
  6.    <script type="text/javascript" src="js/rebours.js"></script>
  7.            <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
  8.    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
  9.    </head>
  10.  
  11.    <body>
  12. <div id="countdown">
  13. </div>
  14.    </body>
  15. </html>


 
et le script js :  
 

Code :
  1. // Set the date we're counting down to
  2. var countDownDate = new Date("April 17, 2046 15:37:25" ).getTime();
  3. // Update the count down every 1 second
  4. var x = setInterval(function() {
  5.   // Get todays date and time
  6.   var now = new Date().getTime();
  7.   // Find the distance between now an the count down date
  8.   var distance = countDownDate - now;
  9.   // Time calculations for days, hours, minutes and seconds
  10.   var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  11.   var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  12.   var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  13.   var seconds = Math.floor((distance % (1000 * 60)) / 1000);
  14.   // Display the result in the element with id="demo"
  15.   document.getElementById("countdown" ).innerHTML = seconds;
  16.   // If the count down is finished, write some text
  17.   if (distance < 0) {
  18.     clearInterval(x);
  19.     document.getElementById("countdown" ).innerHTML = "EXPIRED";
  20.   }
  21. }, 1000);


 
Merci pour votre aide et a tres vite


---------------
Betaserie | Site Perso | YouTube | D3 | PS4
Reply

Marsh Posté le 08-04-2018 à 10:47:02   

Reply

Marsh Posté le 08-04-2018 à 12:27:03    

Bonjour,
 
Je n'ai rien compris à l'histoire de jquery, il n'y a pas de jquery dans le script. :pt1cable:  
 
Enfin bref, tu ne demandes d'afficher que les secondes, donc ça n'affiche que les secondes. [:spamafote]  
 

Code :
  1. // Display the result in the element with id="demo"
  2.   document.getElementById("countdown" ).innerHTML = seconds;


 
Tu n'as qu'à concaténer tes variables pour tout afficher d'un coup.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 08-04-2018 à 13:54:09    

Bonjour MaybeEijOrNot,  
 
l affichage des secondes est bonne ce qui ne l'est pas c'est que cela affiche seulement les 60 dernieres secondes.  
 
L'idee serait donc d afficher le nombre total de seconde (nombres de secondes restantes entre deux dates)
 
Ce qu'offre le script est un decompte jours heures minutes et secondes.  
 
Concernant le jQuery, c'est peut etre inclus dans Math.floor ? (je suis une quiche en js/jQuery/etc...)


---------------
Betaserie | Site Perso | YouTube | D3 | PS4
Reply

Marsh Posté le 08-04-2018 à 14:29:12    

ibrahim54 a écrit :

Concernant le jQuery, c'est peut etre inclus dans Math.floor ? (je suis une quiche en js/jQuery/etc...)


 
Wut ? [:lectrodz]  
jQuery est une bibliothèque de JavaScript. Tu n'en as pas spécialement besoin pour faire un décompte.
 
Enfin bref, ici :

Code :
  1. var seconds = Math.floor((distance % (1000 * 60)) / 1000);


 
Il suffit de diviser la différence de temps entre les deux dates (qui est en millisecondes) par 1000 pour obtenir des secondes et arrondir le résultat, c'est niveau collège...


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 08-04-2018 à 14:50:28    

j'ai fini par trouver merci beaucoup pour le coup de main.  
 
Voici la réponse au cas ou quelqu'un en ait besoin ;)
 

Code :
  1. var seconds = Math.floor((distance / 1000));



---------------
Betaserie | Site Perso | YouTube | D3 | PS4
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed