Aufgeräumt und angepasst, es können jetzt mehrere Countdowns angezeigt werden, das Datum wird in englisher Notation übergeben.
Code:
<html>
<head>
<title>Test</title>
<script type="text/javascript">
function zaehl( datum_en, document_id ){
ziel = new Date(datum_en);
tempD = new Date();
begintext = 'Es sind noch ';
endtext = ' bis zum nächsten Event.';
meldungWennFertig = 'Fertig';
st = 3600000;
m = 60000;
var tick;
if(ziel<=tempD){
clearTimeout('tick');
document.getElementById(document_id).innerHTML=meldungWennFertig;
return;
}
tage=0;
while(tempD<ziel){
tempD.setDate(tempD.getDate()+1);
tage++
}
if(tempD>ziel){
tempD.setDate(tempD.getDate()-1);
tage--
}
diff=ziel-tempD;
stunden=Math.abs(diff)/st;
gStunden=Math.floor(stunden);
minuten=Math.abs(diff)/m-(60*gStunden);
gMinuten=Math.floor(minuten);
sekunden=Math.abs(diff)/1000-(3600*gStunden)-(60*gMinuten);
gSekunden=Math.round(sekunden);
tage=tage==0?'':tage+' Tage, ';
if(gStunden==0&&tage=='')gStunden='';
else gStunden=gStunden+' Stunden, ';
if(gMinuten==0&&gStunden=='')gMinuten='';
else gMinuten=gMinuten+' Minuten ';
gSekunden=gSekunden+' Sekunden';
if(gSekunden==60)gSekunden='';
str=begintext+tage+gStunden+gMinuten+'und '+gSekunden+endtext;
document.getElementById(document_id).innerHTML=str;
tick=setTimeout("zaehl('"+ datum_en + "', '" + document_id + "');", 1000);
}
</script>
</head>
<body>
<div id="c1"></div>
<div id="c2"></div>
<div id="c3"></div>
<script type="text/javascript">
zaehl('1/30/2011 12:13', 'c1');
zaehl('12/31/2010 9:11', 'c2');
zaehl('1/30/2011 8:27', 'c3');
</script>
</body>
</html>