Willkommen in der Webstatt Zum Webstatt Blog und Stories
fish fish am 23.03.09 14: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?

netcup.de Warum gibt es hier Werbung?
abu am 23.03.09 19: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

fish fish am 23.03.09 21:58

cool, danke.

fish fish am 03.04.09 20: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?

abu am 25.04.09 20:19

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

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


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

bastey bastey am 25.04.09 22:13

Brauchte eben die selbe Funktion :p

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt