ja wieder ein Countdown

L

Locke30

Hallo erstmal,

bin neu hier im Forum und suche schon seit zwei Tagen den passenden Countdown für mein Game, habe auch schon hier die Suchfunktion benutzt nur kein richtigen gefunden der mit den variablen richtig funktioniert. Wer könnte mir den bestehenden Code soo anpassen das die Stunden richtig angegeben werden und das dieser Countdown auch in den meisten Browsern funktioniert.
HTML:
<script language="JavaScript">
<!--
function countdown() {
 timer = document.getElementsByName('countdown');
 
 for (i = 0; i <= timer.length - 1; i++) {
  zeit = timer[i].title;
  zeit = zeit - 1;
  
  if (zeit > 0) {
   minuten = 0;
   stunden = 0;
      
   if (zeit > 59) {

    stunden=Math.floor(zeit/(3600));
    sekunden=(zeit-stunden*3600);
    minuten=Math.floor(zeit/(60));
    sekunden=(zeit-minuten*60);
   }
    
   if (sekunden <10) {
    sekunden = "0" + sekunden;
   }
   if (minuten <10) {
    minuten = "0" + minuten;
   }
   if (stunden <10) {
    stunden = "0" + stunden;
   }

   timer[i].firstChild.nodeValue=+stunden+":"+ minuten+":"+sekunden+"";
   timer[i].title = zeit;
  }else {
   timer[i].innerHTML ="| Fertig |&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<a href=?cat=planet&show=gebaude"+"><FONT COLOR=#FF0000>weiter</a></FONT>";
  }
 }
 
 window.setTimeout("countdown()", 1000);
}

//-->
</script>
<body onload="countdown()">

Ausführung:<a href=?mode[0]=ausbauen&id=$row[id]&zfz=$zfz&PHPSESSID=$PHPSESSID>Ausbauen</a>

Ausgabe: <span id="countdown" title="<?= $row_2['fertigstellung'] - time() ?>">
 <?= date("h:i:s", $row_2['fertigstellung'] - time()) ?>
 </span>
Die Angabe eines Gebäudes z.b 03:40:10

Die Ausgabe des jetzigen Countdowns ist 2:100:10

an was kann dies liegen ?

ich bedanke mich schonmal im vorraus für eure hilfe !
 
ja wie schon gesagt habe schon gesucht und einige auch gefunden, auch diese die Du mir als Link gepostet hast. Wenn ich die variablen von den anderen Countdowns einbaue, geht entweder garnichts, oder ich bekomme Javascriptfehler im Browser angezeigt, also versuche ich halt aus allen Countdowns die Codes zu lernen und in meinem umzusetzen, was mir aber bis zum jetzigen Zeitpunkt nicht soo geklappt hat wie ich es gern hätte, oder halt sein sollte. Deshalb auch meine Frage ob Ihr aus dem bestehenden Code die richtige Ausgabe hinbekommt würdet.

MfG
 
ja und wenn ich die seite während der countdown abläuft neu lade fangen die countdowns von vorne wieder an, ja und die Stunden zeigt er auch nicht an zumindest nicht bei mir !
 
Locke30 hat gesagt.:
ja und wenn ich die seite während der countdown abläuft neu lade fangen die countdowns von vorne wieder an
Das Problem wirst du bei jedem Countdown haben. Du musst halt auch php-intern (oder was auch immer du fuer eine serverseitige Sprache benutzt) die Zeit runterzeahlen und immer die richtige Zeit beim Reload an den Countdown uebergeben.

Entweder das oder du benutzt die Date-Funktionen von Javascript und uebergibst dem Countdown den Zeitpunkt (also z.B. 31.12.05 23:59) zu dem das Gebäude fertig wird statt der Zeitspanne bis es fertig wird.
 
Zuletzt bearbeitet:
so habs hinbekommen könnt jetzt hier closen, aber trotzdem Danke für die schnellen antworten hier.

Gruss Locke30
 
Der Thread wird nicht geschlossen, weil du das Problem gelöst hat.

Als Autor des Themas kannst du es als erledigt (= gelöst) markieren, indem du auf den "Status"-Button klickst.
 
ja habe hier ein den ich jetzt für mein game benutze!
Code:
<script type="text/javascript">
<!--
intObjs = 0;
function nullen(intInt)
{
return(intInt<10) ? '0' + intInt.toString() : intInt;
}
function countdown(intSeconds, intTarget, strCmd)
{
    if(document.getElementById)
        {
            try
                {
                    if(countdown.arguments.length > 2)
                        {
                                  intDays = Math.floor((intSeconds / 3600) / 24);
            				intHrs = Math.floor((intSeconds / 3600) % 24);
           					intMins= Math.floor((intSeconds % 3600) / 60);
            				intSecs= intSeconds % 60;
                            document.getElementById('count_'+intTarget).firstChild.data =
                                       
					 strOut = '';
							if(intDays > 0) 
							{
    				        strOut = intDays + ' Tage ';
			  				}
					 strOut +=  nullen(intHrs) + ':' +
                  				nullen(intMins)+ ':' +
                  				nullen(intSecs);
								document.getElementById('count_'+intTarget).firstChild.data = strOut;
                        }
                    else
                        {
                            strCmd=(countdown.arguments.length>1)?countdown.arguments[1]:'';
                            intTarget = intObjs;
                            document.write('<span id="count_'+intObjs+'">&nbsp;</span>');
                            intObjs++;
                        }
                    if(intSeconds > 0)
                        {
                            window.setTimeout('countdown('+(intSeconds-1)+','+intTarget+',\''+strCmd+'\')',999);
                        }
						else
                        {
                            eval(strCmd);
                        }

                 }
             catch(e){}

        }
}
//-->
</script>
und zur Anzeige macht das so,
<script type="text/javascript">countdown(<?php echo $row['ziel-zeit'] - time(); ?>)</script>
den php code musst natürlich noch auf dein php anpassen.

Gruss Locke30
 

Neue Beiträge

Zurück