destacados

Gabriel Da Silva

Portafolio del ilustrador y director de arte brasileño, aunque afincado en Madrid, Gabriel Da Silva.

B&W Helmut Newton

Selección de fotografías en blanco y negro de uno de los fotógrafos más conocidos de las últimas décadas, Helmut Newton.

Judith Erwes

Fotógrafa afincada en Londres con un estilo que combina la moda, el humor y la estética retro.

Jody Rogac

Nacida en Inglaterra y criada en Canadá, Jody Rogac en la actualidad vive y trabaja en Brooklyn. Sus trabajo ha obtenido diversos galardones.

Publicaciones

Función para determinar el tiempo transcurrido en PHP

, 10/02/2010 10:01:31

Esta función muestra el tiempo transcurrido desde una fecha dada. La idea es mostrar el tiempo en un formato más amigable para el lector. En vez de mostrar una fecha como "09/02/2010", se mostraría un texto indicando "Hace 1 día". Este tipo de visualización se empezó a popularizar gracias a GMail. La función aquí mostrada es una simple adaptación a las peculiaridades del castellano de la función nicetime que se encuentra en los comentarios de php.net.

function tiempo_transcurrido($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 incorracta";
	}
	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"; //MESES
		$intervalos[$j].= "s";
	}
   
    return "$tiempo $diferencia $intervalos[$j]";
}
// Ejemplos de uso
// fecha en formato yyyy-mm-dd
// echo tiempo_transcurrido('2010/02/05');
// fecha y hora
// echo tiempo_transcurrido('2010/02/10 08:30:00');
Páginas: 1
comentarioscomentarios