• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zeit läuft, ab gewissen Datum

Status
Für weitere Antworten geschlossen.

Mars@Gera

Mitglied
Ich möchte eine Zeit laufen lassen wo da steht, seit xx Monaten xx Tagen xx Stunden xx Sekunden ist irgendwas da!

also, das die Zeit nciht rückwärts läuft sondern vorwärts, und halt z.B. ab dem heutigen Tag.

Wisst ihr wie ich es meine?

MfG Marcel
 
jo,

google ma nach Timestamp() ... das ist eine PHP Funktion die Datum und Uhrzeit in einen Zahlenkombination umschreibt.

ich glaube wenn man den tag ab dem man das startet bis zum ende beide daten in timestmap umwandelt könnte man mit einer schleife abzählen und dann bei gleichheit der zahlen sagen, dass der tag erreicht ist.


wenn ich falsch liege, bitte korrigieren :>

mfg
 
also ma angenommen das ding soll ab morgen laufen.
Der Timestamp für morgen 0:00 uhr ist
Code:
1192831200
dann könnte man es so machen
PHP:
<?php
$start = 1192831200;
if(time() > $start) {
  $sekunden = time()-$start;
  $minuten = 0;
  $stunden = 0;
  $tage = 0;
  while($sekunden >= 60) {
    $minuten++;
    $sekunden -= 60;
  }
  while($minuten >= 60) {
    $stunden++;
    $minuten -= 60;
  }
  while($stunden >= 24) {
    $tage++;
    $stunden -= 24;
  }
  while($tage >= 7) {
    $wochen++;
    $tage -= 7;
  }
  echo 'Seit '.date('d.m.Y - G:i:s',$start).' sind ';
  echo $wochen.' Woche(n), ';
  echo $tage.' Tag(e), ';
  echo $stunden.' Stunde(n), ';
  echo $minuten.' Minute(n) und ';
  echo $sekunden.' Sekunde(n) ';
  echo 'vergangen.';
}
?>
 
probier doch einfach ma aus ;) deklariere 2 vars und wandel die ihn timestamp um und mach eine forschleife raus :>

und guck ma wenn du start auf aktuelle uhrzeit setzt und ende auf aktuelle uhrzeit +2 min setzt ob es nach 2 min erreicht ist.

kann es selber zurzeit nicht testen.

bin aufer arbeit
mfg
 
Danke Frank werde ich gleich ausprobieren, und wenn der zeitpunkt schon zurück liegt, es ist nämlich der 17.09.2007 Uhrzeit kann man ja auf 0.00 machen!

Wie geht das dann mit dem Datum?
 
hier hastes mim 17.9.2007
PHP:
   <?php
$startpunkt = Array(
  "sekunde" => 0,
  "minute" => 0,
  "stunde" => 0,
  "tag" => 17,
  "monat" => 9,
  "jahr" => 2007
);
$start = mktime($startpunkt["sekunde"],$startpunkt["minute"],$startpunkt["stunde"],$startpunkt["monat"],$startpunkt["tag"],$startpunkt["jahr"]);
if(time() > $start) {
  //Rest wie oben
?>
 
Ok, ich glaube da lasse ich das lieber, davon habsch keine ahnung!
Bin froh, das ich einigermaßen , geringfügigst, mit dem nötigen von php hinkomme, was schon nicht viel ist!

MfG Marcel
 
Hab dir mal was feines gebastelt.
PHP:
<?php
class Timer {
  function Timer($sekunde,$minute,$stunde,$tag,$monat,$jahr) {
    $this->now = time();
    $this->id = uniqid();
    $this->point = mktime($sekunde,$minute,$stunde,$monat,$tag,$jahr);
    if($this->now > $this->point)
      $this->Build();
  }
  function Build() {
    $sekunden = $this->now - $this->point;
    list($sekunden,$minuten) = $this->Parse($sekunden,60);
    list($minuten,$stunden) = $this->Parse($minuten,60);
    list($stunden,$tage) = $this->Parse($stunden,24);
    list($tage,$wochen) = $this->Parse($tage,7);
    $this->javaScript();
    echo '
    Seit dem '.date("d.m.Y - G:i:s",$this->point).' sind
    <span id="wochen'.$this->id.'">'.$wochen.'</span> Woche(n),
    <span id="tage'.$this->id.'">'.$tage.'</span> Tag(e),
    <span id="stunden'.$this->id.'">'.$stunden.'</span> Stunde(n),
    <span id="minuten'.$this->id.'">'.$minuten.'</span> Minute(n),
    <span id="sekunden'.$this->id.'">'.$sekunden.'</span> Sekunde(n)
    vergangen.
    ';
  }
  function Parse($arg,$max) {
    $rest = 0;
    while($arg >= $max) {
      $rest++;
      $arg -= $max;
    }
    return Array($arg,$rest);
  }
  function JavaScript() {
    echo '
    <script type="text/javascript">
    <!--
    function startcountup'.$this->id.'() {
      window.setInterval("countup'.$this->id.'()",1000)
    }
    function countup'.$this->id.'() {
      sekunden = parseInt(document.getElementById("sekunden'.$this->id.'").innerHTML)
      sekunden = sekunden+1
      if(sekunden < 60)
        document.getElementById("sekunden'.$this->id.'").innerHTML = sekunden
      else {
        document.getElementById("sekunden'.$this->id.'").innerHTML = 0
        document.getElementById("minuten'.$this->id.'").innerHTML = parseInt(document.getElementById("minuten'.$this->id.'").innerHTML)+1
      }
      if(parseInt(document.getElementById("minuten'.$this->id.'").innerHTML) >= 60) {
        document.getElementById("minuten'.$this->id.'").innerHTML = 0
        document.getElementById("stunden'.$this->id.'").innerHTML = parseInt(document.getElementById("stunden'.$this->id.'").innerHTML)+1
      }
      if(parseInt(document.getElementById("stunden'.$this->id.'").innerHTML) >= 24) {
        document.getElementById("stunden'.$this->id.'").innerHTML = 0
        document.getElementById("tage'.$this->id.'").innerHTML = parseInt(document.getElementById("tage'.$this->id.'").innerHTML)+1
      }
      if(parseInt(document.getElementById("tage'.$this->id.'").innerHTML) >= 7) {
        document.getElementById("tage'.$this->id.'").innerHTML = 0
        document.getElementById("wochen'.$this->id.'").innerHTML = parseInt(document.getElementById("wochen'.$this->id.'").innerHTML)+1
      }
    }
    -->
    </script>
    ';
  }
  function start() {
    return 'startcountup'.$this->id.'()';
  }
  function startJavaScript($scripts) {
    echo '<script type="text/javascript"><!--'."\n";
    echo 'window.onload = function() {'."\n";
    foreach($scripts as $script) {
      $verzögerung = rand(0,1000);
      echo 'window.setTimeout("'.$script.'",'.$verzögerung.')'."\n";
    }
    echo '}'."\n";
    echo '--></script>';
  }
}
?>

Jeweils dort wo der 'Timer angezeigt werden soll:'
PHP:
$timer[] = new Timer(0,0,0,17,9,2007);
du kannst mehrere auf der Seite platzieren: Beispiel:
PHP:
$timer[] = new Timer(0,0,0,17,9,2007);
echo "<br>";
$timer[] = new Timer(0,0,16,19,10,2007);
Die Argumente :
new Timer (Sekunde,Minute,Stunde,Tag,Monat,Jahr);

Wenn du alle Timer auf deiner Seite platziert hast, und du möchtest dass sie weiterlaufen (also nicht stehen bleiben) am Ende deiner Seite (oder nach dem letzten new Time() folgenden Code schrieben:
PHP:
foreach($timer as $single)
  $move[] = $single->start();
Timer::startJavaScript($move);

Sodele ;) greez
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben