tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
727
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    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!
     

  2. #2
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    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-Code:
    $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>';
     

  3. #3
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

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

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  4. #4
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    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
     

  5. #5
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    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-Code:
    <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-Code:
    if(lngSekunden <= 0) location.href = 'index.php?action=build&city=$city';
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    z.B., indem du den ganzen Skript-Block per PHP nur dann ausgibst, wenn $timeleft grösser als 0 ist
     

  7. #7
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    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!
     

  8. #8
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von Sasser Beitrag anzeigen
    PS: Es wird vorher geprüft per PHP, ob noch Zeit übrig ist und wenn ja wird der Timer gestartet!
    Wenn dies der Fall wäre, würde die Seite nicht mehrfach neu geladen werden.
     

  9. #9
    SimonErich SimonErich ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    303
    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.
     

Ähnliche Themen

  1. In Countdown: 09 Sekunden statt 9 Sekunden
    Von Partyman im Forum PHP
    Antworten: 4
    Letzter Beitrag: 03.02.08, 23:37
  2. Sekunden Countdown?!
    Von uafsc im Forum PHP
    Antworten: 6
    Letzter Beitrag: 28.08.07, 11:40
  3. countdown der die Sekunden herunter zählt ?
    Von -GS-Master im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 19.11.06, 15:01
  4. Sekunden Countdown
    Von kTULu im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 08.10.04, 17:13
  5. X Sekunden Countdown
    Von Schaelle im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 02.09.04, 15:19