CountDown Sekunden

Sasser

Erfahrenes Mitglied
Hallo Leutz!

Ich habe 3 Variablen: $hours, $minutes, $seconds!

Diese möchte ich gern per JavaScript runterzählen, bis ich bei 0 ankomme! Es sollte im Format: Stunden:Minuten:Sekunden sein. Nur leider finde ich kein passendes Script!

PS: Gibt es vll. dann eine Möglichkeit, wenn man bei 0 angekommen ist, zu einer URL umzuleiten?

Bitte um Hilfe! :confused:
 
Hallo!

Ich hab jetzt nen richtig tolles Script gefunden nach sehr langem Googeln!

Es funktioniert auch! Wäre es möglich, nach Ablauf auch ein Fenter aufzurufen?

Allerding aktualisiert sich das Script nicht automatisch, wodurch man ja auch bei PHP bleiben könnte...

HTML:
$typ = "building";
$fertig = "Abgeschlossen!";


    $script = '<span class="actions_text" id="countDown'.$typ.'Text"></span>
    <script type="text/javascript">

          var countDown'.$typ.'Interval = '.$timeleft.';
          var timestamp=countDown'.$typ.'Interval;
        function countDown_'.$typ.'()
                {
          sekunden = timestamp;
          monate = Math.floor(sekunden/2419200);
          sekunden-=monate*2419200;

          wochen = Math.floor(sekunden/604800);
          sekunden-=wochen*604800;

          tage = Math.floor(sekunden/86400);
          sekunden-=tage*86400;

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

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


            if(stunden < 10) stunden = "0"+stunden;
            if(sekunden < 10) sekunden = "0"+sekunden;
            if(minuten < 10) minuten = "0"+minuten;
 var bt = "'.$typ.'"=="epoche"?"":"";


monate = (monate > 0) ? monate+" m " : "";
wochen = (wochen > 0) ? wochen+" w " : "";
tage = (tage > 0) ? tage+" t " : "";
stunden = (stunden > 0) ? stunden+" h " : "";
minuten = (minuten > 0) ? minuten+" m " : "";
sekunden = (sekunden > 0) ? sekunden+" s" : "";
text = bt + "<br>" + monate+wochen+tage+stunden+minuten+sekunden;


      if (countDown'.$typ.'Interval < 1)
                {
                    document.getElementById("countDown'.$typ.'Text").innerHTML = "'.$fertig.'";
                    return;
                }
            else
                {
                    timestamp--;
                    document.getElementById("countDown'.$typ.'Text").innerHTML = text;
                    setTimeout("countDown_'.$typ.'()", 1000);
                }
        }
            countDown_'.$typ.'();

    </script>';
 
Hi,

mit der Suchfunktion hättest du sicherlich diesen Thread gefunden - es müssen die Zeitangaben lediglich noch in Sekunden umgerechnet werden.

Ciao
Quaese
 
Hmmich finde aber meinen schon besser, es müsste eben nur noch sekündlich sich aktualisieren!?

Wenn es nicht zu managen ist werde ich es einfach bei PHP belassen
 
So das funktioniert nun bombig!

Nur habe ich das Problem, dass wenn Sekunden 0 sind er die Seite nicht einmal lädt sondern ständig! Wie kann ich das noch abändern?

HTML:
<script type='text/javascript'>
window.onload=secondCount;
var lngSekunden = $timeleft;
function secondCount(){
intStunden = Math.floor(lngSekunden/(60*60));
intStunden = (intStunden < 10) ? '0'+intStunden : intStunden;
lngHelpSekunden = lngSekunden - intStunden*60*60;
intMinuten = Math.floor(lngHelpSekunden/60);
intMinuten = (intMinuten < 10) ? '0'+intMinuten : intMinuten;
intSekunden = lngHelpSekunden - intMinuten*60;
intSekunden = (intSekunden < 10) ? '0'+intSekunden : intSekunden;
strZeit = intStunden + ':' + intMinuten + ':' + intSekunden;
document.getElementById('countdown').innerHTML = strZeit;
lngSekunden--;
if(lngSekunden >= 0) window.setTimeout('secondCount()', 1000);
if(lngSekunden <= 0) location.href = 'index.php?action=build&city=$city';
}
</script>

Konkret also das hier:

HTML:
if(lngSekunden <= 0) location.href = 'index.php?action=build&city=$city';
 
Ich glaube du hast mich ein bisschen falsch verstanden!?

Das Script läuft Live und orientiert sich in etwa wieviel Zeit noch übrig ist und über das Scrift möchte ich gern der Seite neu laden. Da ich manachmal vorher einen Post sende, bevor das Script startet kann ich die Seite nicht einfach aktualisieren, sondern muss die gleiche URL aufrufen!

Was mass ich in das Javascript einbringen, dass er nur einmal aktualisiert!

PS: Es wird vorher geprüft per PHP, ob noch Zeit übrig ist und wenn ja wird der Timer gestartet!
 
Hallo @Sasser

Sven Mintel hat schon recht.
Dein Script prüft dies anscheinend noch nicht, ansonsten würde es funktionieren.

Die Datei zu der weitergeleitetet wird, muss zuerst prüfen ob überhaupt Zeit übrig ist, und wenn ja, dann erst das Script ausführen.

Zeig mal ein bisschen aus der PHP Datei davor.
 

Neue Beiträge

Zurück