gox: coundown

hallo, habe ein kleines coundown script gecoded, was ist aber an der berechnung nicht richtig? kommt immer was falsches raus :(

<?php
    $coundown = $row['endtime'] - time();
    $tage     = $coundown / 86400;
    $stunden  = $coundown / 3600 / $tage;
    $minuten  = $coundown / 60 / $tage / $stunden;
?>

mfg gox

  1. Hallo gox!

    hallo, habe ein kleines coundown script gecoded, was ist aber an der berechnung nicht richtig? kommt immer was falsches raus :(

    Was kommt denn falsches raus, und was willst du genau machen?

    $coundown = $row['endtime'] - time();
        $tage     = $coundown / 86400;
        $stunden  = $coundown / 3600 / $tage;
        $minuten  = $coundown / 60 / $tage / $stunden;

    Und, ich würde die Variable mal spontan $countdown nennen.
    Du weißt, was Du so berechnest?

    MfG
    Götz

    --
    Losung für Dienstag, 21. September 2004
    Wohl dem Volk, dessen Gott der Herr ist, dem Volk, das er zum Erbe erwählt hat! (Psalm 33,12)
    Wisst ihr nicht, dass die Ungerechten das Reich Gottes nicht ererben werden? Lasst euch nicht irreführen! (1. Korinther 6,9)
    (http://www.losungen.de/heute.php3)
    1. es kommt nur falsches raus, stunden und minuten stimmen nicht, z.b. minuten kommt immer 60 raus?!

      was ich berechnen möchte:
      mit einen timestamp der in der zukunft liegt die tage stunden und minuten berechnen bis dahin... aber so wie ich dachte gehts woll net...

      1. Hallo gox!

        mit einen timestamp der in der zukunft liegt die tage stunden und minuten berechnen bis dahin...

        $coundown = $row['endtime'] - time();
            $tage     = $coundown / 86400;
            $stunden  = $coundown / 3600 / $tage;
            $minuten  = $coundown / 60 / $tage / $stunden;

        Also, ich hab mir das jetzt nicht genau überlegt, aber so in etwa sollte es wohl gehen:
        $zeitspanne = $endzeit - $jetzt;
        $countdown_text = '';
        $minuten = $zeitspanne / 60;
        $countdown_text = $minuten.' Minuten';
        if ($minuten > 60) {
            $stunden = ($zeitspanne - ($minuten*60)) / (60*60);
            $countdown_text = $stunden.' Stunden '.$countdown_text
            if ($stunden > 24) {
                $tage = ($zeitspanne - ($minuten*60) - ($stunden*60*60)) / (60*60*24);
                $countdown_text = $tage.' Tage'.$countdown_text;
            }
        }
        Und am Ende dann $countdown_text ausgeben.

        Ich hoff, ich hab mich jetzt nicht völlig verplant.

        MfG
        Götz

        --
        Losung für Dienstag, 21. September 2004
        Wohl dem Volk, dessen Gott der Herr ist, dem Volk, das er zum Erbe erwählt hat! (Psalm 33,12)
        Wisst ihr nicht, dass die Ungerechten das Reich Gottes nicht ererben werden? Lasst euch nicht irreführen! (1. Korinther 6,9)
        (http://www.losungen.de/heute.php3)
        1. ich habs mir nicht genau angeschaut, aber ich brauch nur die einzelnden zeitangaben, also tage stunden und minuten extra um damit weiterzuarbeiten...

          bei deiner methode find ich, das es zuviel aufwand und langsam, kann mir vielleicht noch einer sagen was an meiner recnung falsch ist?

          1. hab dein vorschlag getested und folgendes bekomme ich als ausgabe:

            0 Stunden 1180.26666667 Minuten

            1. Hallo gox!

              hab dein vorschlag getested und folgendes bekomme ich als ausgabe:
              0 Stunden 1180.26666667 Minuten

              Also, ich hab auf alle Fälle mal mir das Runden gespart, was natürlich noch rein muß.
              Also die Divisionen abrunden.

              Bei den Minuten dürfte ja eigenlich nie ein Wert größer 60 rauskommen.
              Da hab ich halt noch was verplant, aber ich geh jetzt trotzdem schlafen.

              MfG
              Götz

              --
              Losung für Mittwoch, 22. September 2004
              Ich habe dich je und je geliebt, darum habe ich dich zu mir gezogen aus lauter Güte. (Jeremia 31,3)
              Nathanael spricht zu ihm: Woher kennst du mich? Jesus antwortete und sprach zu ihm: Bevor Philippus dich rief, als du unter dem Feigenbaum warst, sah ich dich. (Johannes 1,48)
              (http://www.losungen.de/heute.php3)
              1. Hallo nochmal!

                Mir fiel grda auf, daß ich da noch mehr verplant hab.
                Aber kannst es ja mal als Ansatz nehmen.

                MfG
                Götz

                --
                Losung für Mittwoch, 22. September 2004
                Ich habe dich je und je geliebt, darum habe ich dich zu mir gezogen aus lauter Güte. (Jeremia 31,3)
                Nathanael spricht zu ihm: Woher kennst du mich? Jesus antwortete und sprach zu ihm: Bevor Philippus dich rief, als du unter dem Feigenbaum warst, sah ich dich. (Johannes 1,48)
                (http://www.losungen.de/heute.php3)
        2. Hallo nochmal!

          So, da ich gestern Nacht ja einiges nicht bedacht hatte wollte ich doch noch eine funktionierende Lösung posten.

          Das folgende Script hab ich kurz getestet, in meinen Tests hat es korrekt funktioniert (der Einfachheit halber hat eben jedes Jahr 365 Tage, für so nen Counter ist das imho genau genug).

          Das geht bestimmt alles auch einfacher und toller, aber ich wollte nur ein funktionierendes Script, nicht mehr und auch nicht weniger ;)

          Nun das Script ($startzeit und $endzeit müssen als UNIX-Timestamps gegeben sein, Kommentare hab ich mir gespart, sollte selbsterklärnd sein):
          $zeitspanne = $endzeit - $jetzt;
          $minuten = floor($zeitspanne / 60);
          $minuten_text = $minuten.' Minuten';
          if ($minuten >= 60) {
              $minuten = ($minuten % 60);
              $minuten_text = $minuten.' Minuten';
              $stunden = floor(($zeitspanne - ($minuten*60)) / (60*60));
              $stunden_text = $stunden.' Stunden ';
              if ($stunden >= 24) {
                  $stunden = ($stunden % 24);
                  $stunden_text = $stunden.' Stunden ';
                  $tage = floor(($zeitspanne - ($minuten*60) - ($stunden*60*60)) / (60*60*24));
                  $tage_text = $tage.' Tage ';
                  if ($tage >= 365) {
                      $tage = ($tage % 365);
                      $tage_text = $tage.' Tage ';
                      $jahre = floor(($zeitspanne - ($minuten*60) - ($stunden*60*60) - ($tage*60*60*24)) / (60*60*24*365));
                      $jahre_text = $jahre.' Jahre ';
                  } else {
                      $jahre_text = '';
                  }
              } else {
                  $tage_text = '';
              }
          } else {
              $stunden_text = '';
          }
          $countdown_text = $jahre_text.$tage_text.$stunden_text.$minuten_text;

          MfG
          Götz

          --
          Losung für Mittwoch, 22. September 2004
          Ich habe dich je und je geliebt, darum habe ich dich zu mir gezogen aus lauter Güte. (Jeremia 31,3)
          Nathanael spricht zu ihm: Woher kennst du mich? Jesus antwortete und sprach zu ihm: Bevor Philippus dich rief, als du unter dem Feigenbaum warst, sah ich dich. (Johannes 1,48)
          (http://www.losungen.de/heute.php3)
  2. Hello,

    <?php
        $coundown = $row['endtime'] - time();
        $tage     = $coundown / 86400;
        $stunden  = $coundown / 3600 / $tage;
        $minuten  = $coundown / 60 / $tage / $stunden;
    ?>

    Bednek auch, dass die reine Rechnung mintestsn zweimal im Hahr nicht simmt: zum Sommerzeitbeginn und zum Sommerzeitende.

    Es gibt in PHP die sehr leistungsfähig Funktionen

    strtotime() http://de2.php.net/manual/en/function.date.php
     date()      http://de2.php.net/manual/en/function.date.php

    die sich gut ergänzen, wenn das Datum im Zeitraum vom 01.01.1970 bis zum 19.01.2038 liegt. Außerhalb des Bereiches funktionieren die Funktionen leider nicht mehr beide.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau