No solo me esta devolviendo dias 0 1 2 3 4 5 6
He intentado esto que lo encontre por google pero no me va:
Código PHP:
function hace($timestamp)
{
$diferencia = time() - $timestamp;
if($diferencia > 0)
{
$periodo = array("seg", "min", "hora", "dia", "semana", "mes" , "año", "decada");
$longitud = array( "60" ,"60" , "24" , "7" , "4.35", "12" , "10" );
for($j = 0; $diferencia >= $longitud[$j]; $j++)
$diferencia /= $longitud[$j];
$diferencia = round($diferencia);
if($diferencia != 1)
{
if($periodo[$j] == "mes")
$periodo[$j].= "es";
else
$periodo[$j].= "s";
}
return "Hace ".$diferencia." ".$periodo[$j];
}
else
{
return "Ahora mismo";
}
}
He cambiado el tipo de dato en la bbdd a timestamp
y el error que me devuelve es el siguiente ESTAN COMENTADOS:
Código PHP:
function hace($timestamp)
{
$diferencia = time() - $timestamp;
if($diferencia > 0)
{
$periodo = array("seg", "min", "hora", "dia", "semana", "mes" , "año", "decada");
$longitud = array( "60" ,"60" , "24" , "7" , "4.35", "12" , "10" );
for($j = 0; $diferencia >= $longitud[$j]; $j++) //NOTICE: UNDEFINED OFFSET
$diferencia /= $longitud[$j]; //NOTICE: UNDEFINED OFFSET y WARNING: Division By Zero
$diferencia = round($diferencia);
if($diferencia != 1)
{
if($periodo[$j] == "mes")
$periodo[$j].= "es";
else
$periodo[$j].= "s";
}
return "Hace ".$diferencia." ".$periodo[$j];
}
else
{
return "Ahora mismo";
}
}