Aca te dejo una funcion:
function ago($timestamp, $suffix = '')
{
$times = [
'year' => 31536000,
'month' => 2678400,
'day' => 86400,
'hour' => 3600,
'minute' => 60,
'second' => 1
];
$time_phrases = [
'year' => ['1 año', '%d año'],
'month' => ['1 mes', '%d meses'],
'day' => ['1 dia', '%d dias'],
'hour' => ['1 hora', '%d horas'],
'minute' => ['1 minuto', '%d minutos'],
'second' => ['un momento'],
'undefined' => 'mucho tiempo'
];
$since_time = time() - $timestamp;
$output = false;
foreach($times as $type => $seconds)
{
if ($since_time >= $seconds)
{
$calc = floor($since_time / $seconds);
$plural = ($calc == 1 || $type == 'second');
if ($calc == 1 || $calc > 1)
$output = sprintf($time_phrases[$type][($plural ? 0 : 1)], $calc);
else
$output = $time_phrases['undefined'];
break;
}
}
return $suffix . ' ' . (!$output ? $time_phrases['second'][0] : $output);
}
donde $timestamp
es el tiempo de tu notificia y $suffix
es la cadena que va antes. puedes modificar el arreglo que defini como $time_phrases
en la funcion a tu gusto.
echo ago(1422846559, 'hace');
te devuelve: hace 24 minutos
tambien existe una libreria para jquery que hace lo mismo en el lado del cliente http://mattbradley.github.io/livestampjs/ que trabaja con moment.js ( http://momentjs.com/ )