JavaScript Countdown will nicht richtig laufen (Programmieren)

JavaScript Countdown will nicht richtig laufen (Programmieren)

Hi

Also ich hab nen Problem mit meinem Countdown, der dafür ausgerichtet ist von vorgegebener Sekunden im Format Stunden:Minuten:Sekunden nach null zu zählen. Aber irgendwie funktioniert das mit den Minuten nicht richtig, aber seht selbst:

Link: http://w3bmast3ro.pytalhost.com/test%5Bgnwitngoejnuzhjf%5D/countdown/


<html>
<head>
<script language="JavaScript">
<!--
function countdown(id_name, sekunden)
{

if (sekunden != 0)
{

stunden=Math.floor(sekunden/3600);
sekunden-=stunden*3600;
minuten=Math.floor(sekunden/60);
sekunden-=minuten*60;

if (stunden < 10) {z1 = "0";}else{z1 = "";}
if (minuten < 10) {z2 = "0";}else{z2 = "";}
if (sekunden < 10) {z3 = "0";}else{z3 = "";}

document.getElementById(id_name).innerHTML = z1+stunden+":"+z2+minuten+":"+z3+sekunden;

window.setTimeout("countdown('"+id_name+"',
" +(sekunden-1)+ ")", 1000);

}
else
{

document.getElementById(id_name).innerHTML = "Fertig";
top.location.href='domainwennfertig.com';

}
}
//-->
</script>
</head>

<body>
<div id="clock1">
<script language="javascript">countdown('clock1', 500);</script>
</div>
</body>
</html>


Kann mir einer weiterhelfen, ich kenn mich nicht so gut aus mit JavaScript.

mFg Gangercity
Der läuft doch!
Ja schon, nur läuft er nur von 19 Sekunden her gegen 0.

Am anfang wenn man genau hinschaut sieht man in der ersten Sekunde noch 00:08:20. Aber in der 2. Sekunde ists dann nur noch 00:00:19 (und nach 19 sekunden kommt dann schon das "Fertig"), was für mich heisst, das irgendwas mit den Minuten nicht stimmt.

Eigentlich sollte es ja, wenn ich den Quellcode jetzt so mal lese, pro 1000 milisekunde also eine sekunde die sekunde mit 1 subtrahiert werden.
Daraus wird dann oben ja aus den Sekunden die Minuten, Stunden berrechnet.
Nur glaube ich irgendwie, dass er den oberen Teil gar nicht wiederholt wird...
Ich habe keine Ahrnung möchte auch immer sowas machen, aber keine Ahrnung.

Szört den das 8.20 Minuten?
Nun ja, eigentlich tut der Countdown seine Arbeit. Nur Optisch halt nicht. Aber stören tuts schon.

Eigentlich müsste er ja funtkionieren: Jede Sekunde werden die Sekunden minus 1 genohmen. Dann werden daraus die Minuten, Stunden berrechnet und es wird angezeigt. Eigentlich ganz logisch, für mich jedefalls. Nur geht er ja nicht so. Nach meiner Meinung berrechnet er zuerst aus den Sekunden die Minuten, Stunden, dann wäre es 00:08:20, also 20 "reine" Sekunden. Und das, er dann nur von diesen runterzählt, heisst für mich nur, dass er den oberen Teil genau nur ein mal durchläuft und dann nicht mehr. Ach ich weiss doch auch nicht...

Ich meine in den vielen Browsergames gibts das doch auch und da geht es ja.

Nur ist meiner nicht gerade der delsbe wie diejenigen.
Dacht mal, hier kennt sich vielleich einer mit JavaScript aus, der mir weiterhelfen könnte.
<head>
<title>Countdown</title>
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<script type="text/javascript">
/* <![CDATA[ */
var year=2007, month=08, day=02, hour=00, minute=00, second=00;
var enddate=new Date(year, month-1, day, hour, minute, second);
function countdown()
{
startdate=new Date();
if(startdate<enddate)
{
var days=0, hours=0, minutes=0, seconds=0;
while(startdate.getTime()+(24*60*60*1000)<enddate)
{
days++;
startdate.setTime(startdate.getTime()+(24*60*60*1000));
}
hours=Math.floor((enddate-startdate)/(60*60*1000));
startdate.setTime(startdate.getTime()+hours*60*60*1000);
minutes=Math.floor((enddate-startdate)/(60*1000));
startdate.setTime(startdate.getTime()+minutes*60*1000);
seconds=Math.floor((enddate-startdate)/1000);
(days!=1)?days=days+" Tage, ":days=days+" Tag, ";
(hours!=1)?hours=hours+" Stunden, ":hours=hours+" Stunde, ";
(minutes!=1)?minutes=minutes+" Minuten und ":minutes=minutes+" Minute und ";
if(seconds<10) seconds="0"+seconds;
(seconds!=1)?seconds=seconds+" Sekunden":seconds=seconds+" Sekunde";
document.getElementById("countdowntext").innerHTML = days+hours+minutes+seconds;
setTimeout("countdown()", 1000);
}
else document.getElementById("countdowntext").innerHTML = "Countdown beendet";
}
/* ]]> */
</script>
</head>

<body onload="countdown()">
<div id="countdowntext"></div>
</body>

</html>



is zwar größer aber lauft
Aber der Zählt doch ganz anders als Gangercity es benötigt. Oder habe ich da was falsch verstanden.
er muss nur die tage weg machen und das wars
Ne, eigentlich nicht, schließlich soll der Counter nicht auf ein Datum zählen, sondern runter, und zwar am dem Zeitpunkt des Seitenaufrufs.
Genau. Ich brauche kein Jetzt zu irgend einem Datum Countdown. Sondern einen simplen Sekunden auf 0 Countdown. Die Sekunden kann ich schon alleine auf null zählen lassen, nur mit dem HH:MM:SS Format klappts nicht so richtig, bei dem Countdown ganz oben.

Klar gibt es noch andere von dieser Art, aber es wäre gut, wenn der, denn ich oben hingeschrieben hab auch gehen würde.
Logge dich ein um einen Beitrag zu schreiben.