Countdown Stunden, Minuten, Sekunden

Hi, ich bin auf der Suche nach einem kleinen Script, dem ich Stunden , Minuten ,Sekunden uebergeben kann... und dass dan runterzaelt.

Also Beispiel ich uebergebe dem Script 5:12:30
dann soll das einach jede sekunde eins runterzaelen :)

5:12:30
5:12:29
5:12:28......

Bei null soll ganz einfach die Webside Aktualisiert werden :).

Ich hab google benutzt, aber alle Scripts waren total ueberfuellt mit sachen die man sowieso nicht braucht....

Gruss IRooot
 
Als Anregung für nen Countdown guckt dir doch mal das hier an. Vielleicht hilft dir das shcon weiter.
 
Code:
      var jahr=2010, monat=6, tag=21, stunde=18, minute=0, sekunde=00;
      var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);

      function countdown() {
        startDatum=new Date(); // Aktuelles Datum

        if(startDatum<=zielDatum)  {

          var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;



          if(startDatum<zielDatum) {
            while(startDatum<zielDatum) {
              if(startDatum.setFullYear(startDatum.getFullYear()+1)<=zielDatum) jahre++;
            }
            startDatum.setFullYear(startDatum.getFullYear()-1);
          }


          var restTage=0;
          var m=startDatum.getMonth();
          if(m==1-1|| m==3-1||m==5-1||m==7-1||m==8-1||m==10-1||m==12-1)
              restTage=31-startDatum.getDate();
          else if(m==4-1|| m==6-1||m==9-1||m==11-1) restTage=30-startDatum.getDate();
          else if(m==2-1) {
            if(startDatum.getFullYear()%4==0 && (startDatum.getFullYear()%100!=0
                || startDatum.getFullYear()%400==0))
                    restTage=29-startDatum.getDate(); // Schaltjahr
            else restTage=28-startDatum.getDate();
          }

          var startTag=startDatum.getDate();
          var zielTag=zielDatum.getDate();
          startDatum.setDate(1);
          zielDatum.setDate(1);

          if(startDatum<zielDatum) {
            while(startDatum<zielDatum) {
              if(startDatum.setMonth(startDatum.getMonth()+1)<=zielDatum) monate++;
            }
            startDatum.setMonth(startDatum.getMonth()-1);
          }

          if(startDatum.getMonth()==zielDatum.getMonth()) {
            if(startTag<=zielTag) startDatum.setDate(startTag);
            else {
              monate--;
              tage=restTage+1;
            }
          }
          else {
            startDatum.setMonth(startDatum.getMonth()+1);
            if(startTag>=zielTag) tage=restTage+1;
            else {
              monate++;
              startDatum.setDate(startTag);
            }
          }
          zielDatum.setDate(zielTag);


          restTage=Math.floor((zielDatum-startDatum)/(24*60*60*1000));
          startDatum.setTime(startDatum.getTime()+restTage*24*60*60*1000);
          tage+=restTage;

          stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
          startDatum.setTime(startDatum.getTime()+stunden*60*60*1000);


          minuten=Math.floor((zielDatum-startDatum)/(60*1000));
          startDatum.setTime(startDatum.getTime()+minuten*60*1000);


          sekunden=Math.floor((zielDatum-startDatum)/1000);

          (jahre!=1)?jahre=jahre+" Jahre,  ":jahre=jahre+" Jahr,  ";
          (monate!=1)?monate=monate+" Monate,  ":monate=monate+" Monat,  ";
          (tage!=1)?tage=tage+" Tage,  ":tage=tage+" Tag,  ";
          (stunden!=1)?stunden=stunden+" Stunden,  ":stunden=stunden+" Stunde,  ";
          (minuten!=1)?minuten=minuten+" Minuten  und  ":minuten=minuten+" Minute  und  ";
          if(sekunden<10) sekunden="0"+sekunden;
          (sekunden!=1)?sekunden=sekunden+" Sekunden":sekunden=sekunden+" Sekunde";

          document.countdownform.countdowninput.value=
              jahre+monate+tage+stunden+minuten+sekunden;

          setTimeout('countdown()',200);
        }

        else document.countdownform.countdowninput.value=
            "0 Jahre,  0 Monate,  0 Tage,  0 Stunden,  0 Minuten  und  00 Sekunden";
      }

nimm den ;)
 
wäre es nicht wesentlich sinnvoller, die berechnung in EINER einheit durchzuführen (z.b. sekunden), und nur für die ausgabe zu formatieren?
ich mein, der code da.. das ist doch blanker horror :)
 
Allerdings, das wärs. Der Code oben ist echt, naja... unfein.
Vor allem sind wir ja kein "schieb-ihm-den-fertigen-code-rüber"-Forum sondern eins dass Leute dazu bringen sollte sich selbst zu helfen :P
In dem Fall ist das höchstens 5 Minuten googlen. Man muss das Rad ja nicht dauernd (eckig :P) neu erfinden.
Btw, am einfachsten ist es einfach ein vorgefertigtes Timerscript zu nehmen und dann die Seite per meta-refresh neuzuladen.
 
Joa kA hab einfach mal eben schnell gegooglet und das war das erste was ich gefunden habe... War mir schon klar, dass es noch verbesserungswürdig (bedürftig triffts wohl eher ;) ) ist... Naja aber so hat er eine Lösung die funktioniert (wie ist ne andere Frage :D ) ...
 
Zurück
Oben