Aus timestamp sec,min usw herausformatieren

CrushLog

Erfahrenes Mitglied
Hi erstmal ;)

Ich hab ein kleines Denkproblem, liegt wahrscheinlich daran, dass ich schon den ganzen Tag am coden bin.

Bei einer Profil Seite, hab ich in das Hit System eine Last Visitors Anzeige mit eingebaut. Geht auch alles ganz gut, aber nun mein Problem:

Wie formatier ich am besten den timestamp aus der Datenbank um, so dass angezeigt wird, wie lange es her ist, dass der User die Seite besucht hat?
Mein Problem liegt in der dynamik, es danach anzuzeigen abhängig davon ob es Minuten, Stunden, Tage, oder gar Jahre her ist.

Ich komm da einfach nicht weiter...so wie ich mir das denke wird es absolut zu kompliziert!

Ich hab bis jetzt dieses hier:

PHP:
$tonow = time() - $inhalt2[timestamp];

if($tonow < 60) {
$dif = $tonow . "s";
}
elseif($tonow > 60 && $tonow < 3600) {
$dif = $tonow / 60;
$dif = $dif . "m";
}

Dabei zeigt er die Sekunden an, und wenn länger her als 60 Sekunden, die Minuten, aber mit Nachkomma Stellen, die müsst ich dann ja in Sekunden bringen...

Ich weiss grad ecth nich mehr so ganz weiter.
Wär nett, wenn mir da mal jemand unter die Arme greifen würde!

LG,
Ben
 
Zuletzt bearbeitet:
also zum einen kannst du dir diese Differenz schon gleich aus der Datenbank holen, z.B. so

SELECT TIMEDIFF(FROM_UNIXTIME(`timestamp`), NOW()) AS differenz

da kommt dann sowas, mal am Beispiel aus der mysql-Doku raus:

TIMEDIFF(expr,expr2)
TIMEDIFF() returns the time between the start time expr and the end time expr2. expr and expr2 are time or date-and-time expressions, but both must be of the same type.
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
-> '1997-12-30 01:01:01.000002');
-> '46:58:57.999999'

NOW() gibt in diesem Statement ein Datum in der Form benutzbar für TIMEDIFF,
`timestamp` wird mit FROM_UNIXTIME() zu einem solchen umgewandelt.
Sollte jedenfalls von der Theorie her so funktionierten.

mehr findest du hier

ist aber erst ab MySQL 4.1.1 verfügbar
 
Danke für die Antwort, geht aber leider nicht wirklich. Hab auch versucht über das schon formatierte Datum ein Ergebnis zu erhalten, aber er bringt mir nur mysql fehler. Müsste dafür erstmal mysql updaten lassen.
 
Einen Fetch Array Fehler, Version der db ist unter 4.0, dementsprechend geht TIMEDIFF noch nicht :/
 
Zurück