eintrag" vor 12 min"ermitteln

thehasso

Erfahrenes Mitglied
Hallo zusammen,


Ich sitze gerade hier vorm Pc und versuch vergeblich ein Algo. aufg zu bauen mit dem Ich ermitteln kann vor wieviel minuten ein User einen Eintrag geschrieben hat.

Intressant dabei sind nur die Minuten eines Tages weil einträge die älter als ein Tag sind werden automatisch von der DB gelöscht.

Ich bin so vorgegangen, dass ich Stunde, Minute, Sek des Eintrages seperat in der DB speicher.

PHP:
   $jetzt = mktime(0,0,0,date("H"),date("i"),date("s"));
   $eintrag = mktime(0,0,0,$stunde, $minute, $sekunde);
   $eintragvor   = intval(($jetzt - $eintrag) / (3600 * 24 * 365));


Das klappt leider nicht so ganz.
Wär lieb wenn mir jemand dabei behilflich sein könnte.

MFG
thahsso
 
Ungetestet, müsste aber so funktionieren.. Und auch gleich mit Formatierung ;)
PHP:
    function zeit($zeit){
      if($zeit<0) return '---';

      if ($zeit >= (60 * 60)) { // Zeit fuer eine Stunde
          $stunden = floor($zeit / (60 * 60));
          $zeit -= $stunden * (60 * 60);
      }

      if ($zeit >= 60) { // Zeit fuer eine Minute
          $minuten = floor($zeit / 60);
          $zeit -= $minuten * 60;
      }

      if ($zeit > 0) { // Noch Sekunden uebrig?
          $sekunden = $zeit;
      }

      if($sekunden<10) $sekunden = '0'.$sekunden;
      if($sekunden==null) $sekunden = '00';
      if($stunden<10) $stunden = '0'.$stunden;
      if($stunden==null) $stunden  = '00';
      if($minuten<10) $minuten = '0'.$minuten;
      if($minuten==null) $minuten = '00';

      return("$stunden:$minuten:$sekunden"); 
    }

    $vergangen = zeit(time()-mktime($stunde, $minute, $sekunde, $monat, $tag, $jahr));
 
Zuletzt bearbeitet:
Klappt irgendwie nicht .

Sven Mittel welchen Wert sollen die Variablen denn haben? $time und $eintrag

Ich hab jetzt in der Db die sek, minute, stunde, tag , monat, jahr des eintrages seperat gespeichert.
 
Hallo

ich habs so gemacht in der Db ein TIMESTAMP
da steht dann 2009-09-13 02:26:02

und insgesamt:
$vergangen = ( (time()-$timestampAusDatenbank) /60);

ergebnis: 20879993.0667

Bissien viel...
 
ah wusst ichs ;)

PHP:
function convert_datetime($str) {

  list($date, $time) = explode(' ', $str);
  list($year, $month, $day) = explode('-', $date);
  list($hour, $minute, $second) = explode(':', $time);

  $timestamp = mktime($hour, $minute, $second, $month, $day, $year);

  return $timestamp;
}

$vergangen = ( (time()-convert_datetime($timestampAusDatenbank)) /60);

also wenn $timestampAusDatenbank zb 2009-09-13 02:26:02 ist...
 
Zurück