Bueno os lo dejo aquí por si alguien le sirviera.
<?php
function time_elapsed($fecha) {
if(empty($fecha)) {
return "No hay fecha";
}
$intervalos = array("segundo", "minuto", "hora", "día", "semana", "mes", "año");
$duraciones = array("60","60","24","7","4.35","12");
$ahora = time();
$Fecha_Unix = strtotime($fecha);
if(empty($Fecha_Unix)) {
return "Fecha incorrecta";
}
if($ahora > $Fecha_Unix) {
$diferencia = $ahora - $Fecha_Unix;
$tiempo = "Hace";
} else {
$diferencia = $Fecha_Unix - $ahora;
$tiempo = "Dentro de";
}
for($j = 0; $diferencia >= $duraciones[$j] && $j < count($duraciones) - 1; $j++) {
$diferencia /= $duraciones[$j];
}
$diferencia = round($diferencia);
if($diferencia != 1) {
$intervalos[5] .= "e";
$intervalos[$j] .= "s";
}
return "$tiempo $diferencia $intervalos[$j]";
}
?>
La fecha tiene que estar ordenada de la siguiente forma:
<?php
date("Y-m-d H:i:s");
?>
Quedaría así: 2017-03-09 15:16:22
Cualquier duda preguntar.