Webstatt.org - Community seit 2006 - 2012 (2024?)

lesbare datumsanzeige

Avatar user-180
23.03.2009 13:20

hallo,

ich bin auf der suche nach einer funktion die "lesbare daten" erstellt.
dabei geht es um folgendes: man füttert sie mit daten datetime-format, also zb 2009-03-22 21:17:06 und erhält als ausgabe sowas wie: "vor 5 minuten", "vor 1 stunde", "gestern", "letzte woche", "letzten Monat", vor einem Jahr" ect, wie zum beispiel bei last.fm oder facebook.
hat jemand zufällig sowas schonmal gemacht?

may the force be with you. but mostly with me.
user-115
23.03.2009 18:55


/**
* Ausgabe einer Zeitangabe in der Form vor x Stunden/Tage usw.
*
* @param int $timestamp
* @return string
*/
function format_datesince($timestamp) {

$past = time() - $timestamp;
if ($past <= 60) {
return 'vor einer Minute';
}
if ($past <= 60 * 60) {
$n = round($past /60);
return 'vor '.$n.' Minuten';
}
if ($past < 60 * 60 * 2) {
return 'vor einer Stunde';
}
if ($past < 60 * 60 * 24) {
$n = round($past /(60*60));
return 'vor '.$n.' Stunden';
}
if ($past < 60 * 60 * 24 * 2) {
return 'gestern';
}
if ($past < 60 * 60 * 24 * 7) {
$n = round($past /(60*60*24));
return 'vor '.$n.' Tagen';
}

return date('d.m.Y', $timestamp);

}


Meine bisherige Version

Avatar user-180
23.03.2009 20:58

cool, danke.

may the force be with you. but mostly with me.
Avatar user-180
03.04.2009 18:10

hallo
nochmal eine frage: wie bekomme ich da anzeigen wie
'am montag' (dieser woche)
'gestern morgen' und
'im märz 2008'
da eingebaut? kann ich das auch irgentwie mit im datetime-format verwenden?

may the force be with you. but mostly with me.
user-115
25.04.2009 18:19

Gehen tut alles:

function getTimeOfTheDay ($time) {
$h = date('G', $time);
if ($h < 4) {
return __('night'zwinkern;
} elseif ($h < 9) {
return __('morning'zwinkern;
} elseif ($h < 15) {
return __('noon'zwinkern;
} elseif ($h < 18) {
return __('afternoon'zwinkern;
} else {
return __('evening'zwinkern;
}
}

function getDay($time) {
$d = date('N', $time);
switch ($d) {
case 1: return __('Monday'zwinkern;
case 2: return __('Tuesday'zwinkern;
case 3: return __('Wednesday'zwinkern;
case 4: return __('Thursday'zwinkern;
case 5: return __('Friday'zwinkern;
case 6: return __('Saturday'zwinkern;
case 7: return __('Sunday'zwinkern;
}
return null;
}


Die Datums darstellung ist nur grade nicht meine Priorität, deswegen dauert es noch bis meine Format Fkt. entgültig ist.

Avatar user-125
25.04.2009 20:13

Brauchte eben die selbe Funktion :p

Liebe user-125y aka user-125 aka dionysos