Eintrag vor XX Minuten geschrieben

Dominik Schmitz

Grünschnabel
Hey, ich suche ein bereits fertiges Script, was mir die Zeitabstände vereinfacht.

Beispiel

vor wenigen Sekunden
vor 2 Minuten
vor 5 Minuten
vor 38 Minuten
vor 2 Stunden
vor 5 Tagen
vor 2 Monaten

Finde da leider nichts fertiges und weiß nicht wie ich das ganze nennen soll um danach was gescheites zu finden :/

Vielen Dank
 
Grüße,

mich würde gerne mal interesssieren, in welchem Format die Zeit vorliegt (mikrosekunden, bestimmte Formatierungen, etc.)
 
Wie Alex_T schon geschrieben hat, ist hierfür ausschlaggebend in welchem Format deine Zeit vorliegt.
Die Berechnung ist eine einfache Funktion mit einer switch-Ausgabe.
 
Ich schließe mich den beiden an. Wenn es ein UNIX-Timestamp ist, dann könntest du es so lösen:

PHP:
<?php

$vorgabe = 1299663050;

$aktuell = time();

echo $vorgabe ."<br />";
echo $aktuell ."<br />";

$diff = ($aktuell - $vorgabe);

if ($diff < 60) {
    echo "vor wenigen Sekunden";
} elseif ($diff > 60 and $diff <= 3600) {
	echo "in den letzten " .ceil($diff/60) ." Mintuten";
} elseif ($diff > 3600 and $diff <= 86400) {
	echo "in den letzten " .ceil($diff/86400) ." Stunden";
} elseif ($diff > 86400 and $diff <= 604800) {
	echo "in den letzten " .ceil($diff/604800) ." Wochen";
} elseif ($diff > 604800 and $diff <= 2419200) {
	echo "in den letzten " .ceil($diff/2419200) ." Monaten";
} else {
	echo "Ist schon l&auml;nger als 1 Jahr her";
}

?>
 
Hey, vielen Dank schonmal.

Jetzt muss ich nur noch aus meinem Vormat den passenden Timestamp generieren, was momentan noch nicht ganz funktionieren will.

Format: 12.03.2011 18:54

mein bisheriger Code, der leider immer den selben Timestamp generiert:

Code:
// Timestamp Kommentar
$myDate = "16.03.2011 16:04";
$tmp = $myDate.split(" "); // [0]=> Datum [1]=> Time
$tmpDate = $tmp[0].split("."); // [0]=>Tag [1]=>Monat [2]=>Jahr
$tmpTime = $tmp[1].split(":"); // [0]=>Stunden [1]=>Minuten
$timestamp = mktime($tmpTime[0], $tmpTime[1], 0, $tmpDate[1], $tmpDate[0], $tmpDate[2]);
echo $timestamp;

Wenn ich das ganze als echo ausgebe (die Variablen) erhalte ich auch nur "6, , 0, , 1,"...
 
Ein bischen komplizeirt wie du das lösen willst.
Das folgende tuts auch:
PHP:
$myDate = "16.03.2011 16:04";
$timestamp = strtotime($myDate);
 
Vielleicht weil das Datum im falschen Format geschrieben ist!? !? !? !?

Was passiert bei "2011-03-16 16:04"?

Oder ist das egal.
 
Dann funktionierts.

Jetzt muss ich meins nur noch so umfrickeln, da ich das alles in einer Datenbankspalte stehen habe und nicht alle Werte extra :/

So wie ich das oben stehen habe funktionierts leider nicht das zu splitten :(
 
Was meinst du mit "...nicht alle Werte extra..."?

Hast du jetzt den Tag, den Monat, das Jahr, ..., die Sekunden jeweils als separates Feld in der Datenbank stehen?

Speichere die Zeitangaben doch gleich in einem Feld vom Typ Timestamp, dann hast du alles was du brauchst.
 
Zurück