Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Problem mit Javascript Countdown
Frage
Hallo.
Ich habe für eine Seite ein Countdown-Script das leider nicht so richtig funktioniert, ich aber nicht weiss wo der fehler ist.
Ich habe folgendes script:
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function countDown()
{
oTime = new Date();
iStampNow = oTime.getTime();
oTime.setFullYear(2005);
oTime.setMonth(7);
oTime.setDate(15);
oTime.setHours(20);
oTime.setMinutes(00);
oTime.setSeconds(00);
iStampFuture = oTime.getTime();
if ( iStampFuture - iStampNow > 0 ) {
oTime.setTime( iStampFuture - iStampNow );
window.document.getElementById("oCountDownDays").innerHTML
= Math.round((iStampFuture - iStampNow) / 1000 / 84000);
window.document.getElementById("oCountDownHours").innerHTML
= oTime.getHours() -1;
window.document.getElementById("oCountDownMinutes").innerHTML
= oTime.getMinutes();
window.document.getElementById("oCountDownSeconds").innerHTML
= oTime.getSeconds();
setTimeout( "countDown();", 1000 );
} else {
window.document.getElementById(´oAllDate´).innerHTML
= "<img src=bilder/happy.gif>";
}
}
</script>
</head>
<body onLoad="countDown();">
<span id="oAllDate">
<span id="oCountDownDays"></span> Tage,
<span id="oCountDownHours"></span> Stunden,
<span id="oCountDownMinutes"></span> Minuten,
<span id="oCountDownSeconds"></span> Sekunden
</span>
</body>
</html>
[/code]
Folgendes Problem:
Der Countdown läuft runter zum 15.08.2005 - 20:00:00 Uhr
Wenn es zum Beispiel 13.08.2005 nach 20 Uhr ist, zeigt der Countdown an: 2 Tage, -1 Stunden usw... Minuten und sekunden stimmen wieder, nur bei "Tage" wird nicht eins abgezogen, dafür steht vor den Stunden ein minus.
Kenn mich leider nicht so besonders gut aus in Javascript, wahrscheinlich erkennt den Fehler ein Profi auf dem ersten Blick...
Würd mich riesig freuen wenn mir einer helfen kann.
Danke!
Antwort 1 von Dr.Ma-Busen
Moin!
Das Problem müsste bei getHours() liegen. Bin mir nicht sicher aber getHours() gibt für 24 Uhr nicht 24 aus, sondern 0.
Wenn du jetzt in dem Script den teil:
oTime.getHours() -1;
durch den hier ersetzt, dann müsste es gehn.
((oTime.getHours() == 0) ? 24 : oTime.getHours() ) -1;
Ich glaube mit den berechnen der Tage stimmt auch etwas nicht. Weil wenn der Countdown am 15. um 20 Uhr endet und es der 13. nach 20 Uhr ist dann müsste bei Tage dann auch nicht mehr 2 Tage stehen sondern 1 Tag ;)
MfG
Das Problem müsste bei getHours() liegen. Bin mir nicht sicher aber getHours() gibt für 24 Uhr nicht 24 aus, sondern 0.
Wenn du jetzt in dem Script den teil:
oTime.getHours() -1;
durch den hier ersetzt, dann müsste es gehn.
((oTime.getHours() == 0) ? 24 : oTime.getHours() ) -1;
Ich glaube mit den berechnen der Tage stimmt auch etwas nicht. Weil wenn der Countdown am 15. um 20 Uhr endet und es der 13. nach 20 Uhr ist dann müsste bei Tage dann auch nicht mehr 2 Tage stehen sondern 1 Tag ;)
MfG
Antwort 2 von rfb
nun, das Script hier läuft, mit ein paar Anpassungen an deine Ausgabe müsste es den Zweck erfüllen: https://supportnet.de/threads/1047548
PS: wenn du statt
PS: wenn du statt
innerHTML das firstChild.data aus dem DOM nutzt läuft das Script auf allen Browsern (innerHTML ist IE-spezifisch).
