login  Naam:   Wachtwoord: 
Registreer je!
 Forum

countdown

Offline compudoc - 24/07/2007 17:34 (laatste wijziging 24/07/2007 17:35)
Avatar van compudocPHP beginner ik heb een countdown gevonden op internet maar als de tijd verstreken is gaat de tijd verder in de min..
dus bijvoorbeeld; -1 dag, 23 uur, 50 minuten, 30 seconde

nou wil ik bijvoorbeeld dat als het 0:00:00:00 is dat er vanaf dan een bericht komt te staan. zoiets als: de tijd is verstreken

hoe kan ik dit doen

  1. <SCRIPT language="JavaScript">
  2. countdownTo=new Date();
  3. countdownTo.setYear(2007);
  4. countdownTo.setMonth(10);
  5. countdownTo.setDate(17);
  6. countdownTo.setHours(00);
  7. countdownTo.setMinutes(00);
  8. countdownTo.setSeconds(0);
  9.  
  10. function countdown() {
  11. var now=new Date();
  12. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  13. var txt="";
  14. var deltaDays=Math.floor(deltaSecs/86400);
  15. deltaSecs-=86400*deltaDays;
  16. txt+=deltaDays+" dagen, ";
  17. var deltaHours=Math.floor(deltaSecs/3600);
  18. deltaSecs-=3600*deltaHours;
  19. txt+=deltaHours+" uur, ";
  20. var deltaMins=Math.floor(deltaSecs/60);
  21. deltaSecs-=60*deltaMins;
  22.  
  23. txt+=deltaMins+" minuten, ";
  24. txt+=deltaSecs+" seconde , ";
  25. txt=txt.substr(0,txt.length-2);
  26. document.getElementById("countdown").innerHTML=txt;
  27. countdownTimer=setTimeout("countdown()",1000);
  28. }
  29. </SCRIPT>

4 antwoorden

Gesponsorde links
Offline Brycer - 24/07/2007 21:19
Avatar van Brycer HTML interesse
  1. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  2. var txt="";

vervangen door:
  1. var txt="";
  2. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  3. if(deltaSecs <= 0){
  4. txt = "De tijd is verstreken";
  5. }
  6. else{
  7. //de rest van je script
  8. }
Offline compudoc - 25/07/2007 10:02
Avatar van compudoc PHP beginner Brycer bedankt maar het probleem is dat het scriptje op de laatste seconde voordat de tijd is verstreken blijft hangen.
Als je de pagina doet vernieuwen doet ie ook helemaal niks meer weergeven (geen tijd of melding).

hoe kan ik dit probleem oplossen?

dit is mijn script nu:
  1. <SCRIPT language="JavaScript">
  2. countdownTo=new Date();
  3. countdownTo.setYear(2007);
  4. countdownTo.setMonth(11);
  5. countdownTo.setDate(17);
  6. countdownTo.setHours(00);
  7. countdownTo.setMinutes(00);
  8. countdownTo.setSeconds(0);
  9.  
  10. function countdown() {
  11. var now=new Date();
  12. var txt="";
  13. var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
  14. if(deltaSecs <= 0){
  15. txt = "tijd is verstreken";
  16. } else {
  17.  
  18. var deltaDays=Math.floor(deltaSecs/86400);
  19. deltaSecs-=86400*deltaDays;
  20. txt+=deltaDays+" dagen, ";
  21. var deltaHours=Math.floor(deltaSecs/3600);
  22. deltaSecs-=3600*deltaHours;
  23. txt+=deltaHours+" uur<br />";
  24. var deltaMins=Math.floor(deltaSecs/60);
  25. deltaSecs-=60*deltaMins;
  26.  
  27. txt+=deltaMins+" min, ";
  28. txt+=deltaSecs+" sec tot..<br />de tijd is verstreken, ";
  29. txt=txt.substr(0,txt.length-2);
  30. document.getElementById("countdown").innerHTML=txt;
  31. countdownTimer=setTimeout("countdown()",1000);
  32.  
  33. }
  34. }
  35. </SCRIPT>
Offline Brycer - 25/07/2007 10:46
Avatar van Brycer HTML interesse Ja dat klopt.
Dit komt doordat deltasecs zodra het verschil tussen nu en de tijd kleiner dan 1 seconde wordt meteen 0 wordt (omdat je floor gebruikt). En volgens je if-lus wordt txt dan "tijd is verstreken".
Maar
  1. document.getElementById("countdown").innerHTML=txt;
  2. countdownTimer=setTimeout("countdown()",1000);
staat in het else-gedeelte van je lus, dus als deltasecs 0 is, wordt bovenstaande code niet meer uitgevoerd...
De text "tijd is verstreken" wordt dus niet weergegeven en de functie wordt ook niet opnieuw aangeroepen.
Hoe het wel moet (regel 27 t/m 35):
  1. txt+=deltaMins+" min, ";
  2. txt+=deltaSecs+" sec tot..<br />de tijd is verstreken, ";
  3. txt=txt.substr(0,txt.length-2);
  4. }
  5. document.getElementById("countdown").innerHTML=txt;
  6. countdownTimer=setTimeout("countdown()",1000);
  7. }</SCRIPT>

Succes verder 
MvG Brycer 
Offline compudoc - 25/07/2007 10:57
Avatar van compudoc PHP beginner Brycer, heel erg bedankt!
het werkt nu perfect
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.245s