countdown
compudoc - 24/07/2007 17:34 (laatste wijziging 24/07/2007 17:35)
PHP 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
<SCRIPT language="JavaScript">
countdownTo=new Date();
countdownTo.setYear(2007);
countdownTo.setMonth(10);
countdownTo.setDate(17);
countdownTo.setHours(00);
countdownTo.setMinutes(00);
countdownTo.setSeconds(0);
function countdown() {
var now=new Date();
var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
var txt="";
var deltaDays=Math.floor(deltaSecs/86400);
deltaSecs-=86400*deltaDays;
txt+=deltaDays+" dagen, ";
var deltaHours=Math.floor(deltaSecs/3600);
deltaSecs-=3600*deltaHours;
txt+=deltaHours+" uur, ";
var deltaMins=Math.floor(deltaSecs/60);
deltaSecs-=60*deltaMins;
txt+=deltaMins+" minuten, ";
txt+=deltaSecs+" seconde , ";
txt=txt.substr(0,txt.length-2);
document.getElementById("countdown").innerHTML=txt;
countdownTimer=setTimeout("countdown()",1000);
}
</SCRIPT>
< SCRIPT language= "JavaScript" >
countdownTo= new Date( ) ;
countdownTo.setYear ( 2007 ) ;
countdownTo.setMonth ( 10 ) ;
countdownTo.setDate ( 17 ) ;
countdownTo.setHours ( 00) ;
countdownTo.setMinutes ( 00) ;
countdownTo.setSeconds ( 0 ) ;
function countdown( ) {
var now= new Date( ) ;
var deltaSecs = Math.floor ( ( countdownTo.getTime ( ) - now.getTime ( ) ) / 1000 ) ;
var txt= "" ;
var deltaDays= Math.floor ( deltaSecs/ 86400 ) ;
deltaSecs-= 86400 * deltaDays;
txt+= deltaDays+ " dagen, " ;
var deltaHours= Math.floor ( deltaSecs/ 3600 ) ;
deltaSecs-= 3600 * deltaHours;
txt+= deltaHours+ " uur, " ;
var deltaMins= Math.floor ( deltaSecs/ 60 ) ;
deltaSecs-= 60 * deltaMins;
txt+= deltaMins+ " minuten, " ;
txt+= deltaSecs+ " seconde , " ;
txt= txt.substr ( 0 , txt.length - 2 ) ;
document.getElementById ( "countdown" ) .innerHTML = txt;
countdownTimer= setTimeout( "countdown()" , 1000 ) ;
}
</ SCRIPT>
4 antwoorden
Gesponsorde links
Brycer - 24/07/2007 21:19
HTML interesse
var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
var txt="";
var deltaSecs = Math.floor ( ( countdownTo.getTime ( ) - now.getTime ( ) ) / 1000 ) ;
var txt= "" ;
vervangen door:
var txt="";
var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
if(deltaSecs <= 0){
txt = "De tijd is verstreken";
}
else{
//de rest van je script
}
var txt= "" ;
var deltaSecs = Math.floor ( ( countdownTo.getTime ( ) - now.getTime ( ) ) / 1000 ) ;
if ( deltaSecs <= 0 ) {
txt = "De tijd is verstreken" ;
}
else {
//de rest van je script
}
compudoc - 25/07/2007 10:02
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:
<SCRIPT language="JavaScript">
countdownTo=new Date();
countdownTo.setYear(2007);
countdownTo.setMonth(11);
countdownTo.setDate(17);
countdownTo.setHours(00);
countdownTo.setMinutes(00);
countdownTo.setSeconds(0);
function countdown() {
var now=new Date();
var txt="";
var deltaSecs = Math.floor((countdownTo.getTime()-now.getTime())/1000);
if(deltaSecs <= 0){
txt = "tijd is verstreken";
} else {
var deltaDays=Math.floor(deltaSecs/86400);
deltaSecs-=86400*deltaDays;
txt+=deltaDays+" dagen, ";
var deltaHours=Math.floor(deltaSecs/3600);
deltaSecs-=3600*deltaHours;
txt+=deltaHours+" uur<br />";
var deltaMins=Math.floor(deltaSecs/60);
deltaSecs-=60*deltaMins;
txt+=deltaMins+" min, ";
txt+=deltaSecs+" sec tot..<br />de tijd is verstreken, ";
txt=txt.substr(0,txt.length-2);
document.getElementById("countdown").innerHTML=txt;
countdownTimer=setTimeout("countdown()",1000);
}
}
</SCRIPT>
< SCRIPT language= "JavaScript" >
countdownTo= new Date( ) ;
countdownTo.setYear ( 2007 ) ;
countdownTo.setMonth ( 11 ) ;
countdownTo.setDate ( 17 ) ;
countdownTo.setHours ( 00) ;
countdownTo.setMinutes ( 00) ;
countdownTo.setSeconds ( 0 ) ;
function countdown( ) {
var now= new Date( ) ;
var txt= "" ;
var deltaSecs = Math.floor ( ( countdownTo.getTime ( ) - now.getTime ( ) ) / 1000 ) ;
if ( deltaSecs <= 0 ) {
txt = "tijd is verstreken" ;
} else {
var deltaDays= Math.floor ( deltaSecs/ 86400 ) ;
deltaSecs-= 86400 * deltaDays;
txt+= deltaDays+ " dagen, " ;
var deltaHours= Math.floor ( deltaSecs/ 3600 ) ;
deltaSecs-= 3600 * deltaHours;
txt+= deltaHours+ " uur<br />" ;
var deltaMins= Math.floor ( deltaSecs/ 60 ) ;
deltaSecs-= 60 * deltaMins;
txt+= deltaMins+ " min, " ;
txt+= deltaSecs+ " sec tot..<br />de tijd is verstreken, " ;
txt= txt.substr ( 0 , txt.length - 2 ) ;
document.getElementById ( "countdown" ) .innerHTML = txt;
countdownTimer= setTimeout( "countdown()" , 1000 ) ;
}
}
</ SCRIPT>
Brycer - 25/07/2007 10:46
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
document.getElementById("countdown").innerHTML=txt;
countdownTimer=setTimeout("countdown()",1000);
document.getElementById ( "countdown" ) .innerHTML = txt;
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):
txt+=deltaMins+" min, ";
txt+=deltaSecs+" sec tot..<br />de tijd is verstreken, ";
txt=txt.substr(0,txt.length-2);
}
document.getElementById("countdown").innerHTML=txt;
countdownTimer=setTimeout("countdown()",1000);
}</SCRIPT>
txt+= deltaMins+ " min, " ;
txt+= deltaSecs+ " sec tot..<br />de tijd is verstreken, " ;
txt= txt.substr ( 0 , txt.length - 2 ) ;
}
document.getElementById ( "countdown" ) .innerHTML = txt;
countdownTimer= setTimeout( "countdown()" , 1000 ) ;
} </ SCRIPT>
Succes verder
MvG Brycer
compudoc - 25/07/2007 10:57
PHP beginner
Brycer, heel erg bedankt!
het werkt nu perfect
Gesponsorde links
Dit onderwerp is gesloten .