İstediğinize benzer bi iş yapan bi fonksiyon yazmıştım daha önce. Önceki tarihi veriyorsunuz, şu andan itibaren geçen zamanı hesaplıyor. İsteğinize göre şekillendirmeniz mümkün.
function seker_zaman($unix)
{
$diff = time() - $unix;
$times = array(
array(3600, 60, 'dakika'),
array(86400, 3600, 'saat'),
array(604800, 86400, 'gün', 'Dün'), // sonuç "1 gün" ise, onun yerine "Dün" yazar
array(2592000, 604800, 'hafta', 'Geçen hafta'), // sonuç "1 hafta" ise, onun yerine "Geçen hafta" yazar
array(31104000, 2592000, 'ay', 'Geçen ay') // sonuç "1 ay" ise, onun yerine "Geçen ay" yazar
);
if ($diff < 60)
return '1 dakikadan kısa bir süre önce';
foreach ($times as $time) {
if ($diff < $time[0])
return (isset($time[3]) ? $time[3] : floor($diff / $time[1]) . ' ' . $time[2] . ' önce');
}
return seker_tarih($unix);
}
function seker_tarih($unix)
{
return strftime('%e %B %Y %A, %H:%I', $unix);
}