PHP countdown frage + hilfe

  • moin

    also in php kann man ja einen timer bauen, kein thema
    aber der startet ja NUR wenn man die seite betritt.

    geht es auch irgendwie, das ich angebe:
    starte counter und laufe solange bis der wert bei 0 ist, führe eine aktion durch und lauf wieder neu
    möchte das so machen:

    Counter starten: 7 Tage - 2 stunden

    angezeigt werden soll es so: Noch 6Tage, 20Stunden, 30Minuten und 23Sekunden bis xxx

    hoffe mir kann jemand helfen..^^
    oder würde das nur in javascript oder sonstwas gehen?
    mysql wäre auch in ordnung

  • Eine Countdown der während die Seite angezeigt wird live runterläuft kannnst du nicht mit PHP mache, dazu brauchst du Javascript. z.b. klick mich

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ok thx, das ist genau das was ich brauche^^

    aber wieso zeigt er mir immer 0 an...
    hab einfach nur die jahre und monate weggemacht
    schau mal hier:

  • Weil du gerade zum 20.0.0000 um 15:07 Uhr runterzählst und das schon vorbei ist. Steht ja auch dort "Ziel-Datum".

    So würden es ohne Jahre und Monate aussehen:

    Spoiler anzeigen

    <html>
    <head>
    <title>Datum-Countdown mit JavaScript</title>

    <script language="JavaScript">
    // Ziel-Datum in MEZ
    var jahr=2222, monat=2, tag=22, stunde=22, minute=22, sekunde=22;
    var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);

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

    // Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
    if(startDatum<zielDatum) {

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

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

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

    // Tage
    while(startDatum.getTime()+(24*60*60*1000)<zielDatum) {
    tage++;
    startDatum.setTime(startDatum.getTime()+(24*60*60*1000));
    }

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

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

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

    // Anzeige formatieren
    (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=
    tage+stunden+minuten+sekunden;

    setTimeout('countdown()',200);
    }
    // Anderenfalls alles auf Null setzen
    else document.countdownform.countdowninput.value=
    "0 Tage, 0 Stunden, 0 Minuten und 00 Sekunden";
    }
    </script>
    </head>

    <body onload="countdown()">
    <form name="countdownform">
    <p>
    <input size="75" name="countdowninput">
    </p>
    </form>
    </body>

    </html>


    Das ganze ist halt um zu einem spezifischen Datum runterzuzählen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ah ok klappt^^

    aber habe mal noch ein wenig nachgeschaut und das hier gefunden:

    PHP
    <script language="JavaScript">
    TargetDate = "09/16/2010 14:02 ";
    BackColor = "palegreen";
    ForeColor = "navy";
    CountActive = true;
    CountStepper = -1;
    LeadingZero = true;
    DisplayFormat = "%%D%% Tage, %%H%% Stunden, %%M%% Minuten, %%S%% Sekunden bis Wechsel.";
    </script>

    es sieht sehr simpel aus, man kann es sehr leicht ändern etc.
    farbe sieht auch schön aus
    also das gefällt mir von der größe her besser^^
    nur wie vollende ich es nun, dass wenn die zeit abgelaufen ist er als Targetdate dann 6 tage und 22 Stunden nimmt?
    also 7T-2h

    hatte es so versucht gehabt:

    finde es einfach so scheiße wie ich das versucht habe aber nunja.. xD hab noch nie mit javascript gearbeitet^^

  • Also das sind doch nur Variablen die da gepostet hast.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Mh so gut kenne ich mich mit JS dann auch nicht aus. Ich bekomm das mal nicht zum laufen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ja bekomme ich auch probleme wenn ich es in php einbinde

    speicher es mal unter .html ab dann geht es versuche auch schon in php das zu machen bekomm ich aber nicht hin^^

  • Ich arbeite oft sehr viel mit javascript, aber eher optisch zur objektveränderung, mit bezug auf html

    ich denke auch für ein paar minuten gäbe es die lösung es nicht runterzurechnen, sondern die endzeit ausrechnen, und dann immer ausrechnen wie lange es dahin dauert und das andauernd neu laden
    auch für tage ... würde es gehen, macht hald mehr aufwand als eure variante

    hier noch ein beispiel wenn die seite immer offen ist http://www.php.de/javascript-aja…-einbinden.html