Calcular tiempo transcurrido entre una fecha y la actual
Esta función recibe como parámetro una fecha UNIX y devuelve el tiempo transcurrido desde esa fecha en una sola unidad de tiempo.
Es decir, si han pasago 465 días desde entonces, devolverá: «hace un año«. Si han pasado 345 segundos, devolverá «hace 6 minutos«, etc. Es la típica función utilizada para poner el tiempo transcurrido desde que se publicó un post o un comentario por ejemplo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
function ago($time) { $periodos = array("segundo", "minuto", "hora", "día", "semana", "mes", "año", "década"); $duraciones = array("60","60","24","7","4.35","12","10"); $now = time(); $diferencia = $now - $time; for($j = 0; $diferencia >= $duraciones[$j] && $j < count($duraciones)-1; $j++) { $diferencia /= $duraciones[$j]; } $diferencia = round($diferencia); if($diferencia != 1) { if($j != 5){ $periodos[$j].= "s"; }else{ $periodos[$j].= "es"; } } return "hace $diferencia $periodos[$j]"; } |