Supportnet Computer
Planet of Tech

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

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
innerHTML
das
firstChild.data
aus dem DOM nutzt läuft das Script auf allen Browsern (innerHTML ist IE-spezifisch).

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: