Foros del Web » Programando para Internet » PHP »

Función para fechas

Estas en el tema de Función para fechas en el foro de PHP en Foros del Web. Saludos, Ando un poco ocupado con el tiempo y si por ahí alguno de ustedes me puede compartir una función que convierta una fecha a ...
  #1 (permalink)  
Antiguo 04/06/2013, 09:37
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 15 años, 11 meses
Puntos: 31
Función para fechas

Saludos,

Ando un poco ocupado con el tiempo y si por ahí alguno de ustedes me puede compartir una función que convierta una fecha a una cadena indicando el tiempo de publicacion .. seguramente alguno lo tiene ya hecho ..

Ejem:

Se agrega 2013-06-04 10:40:00
Se publico el siguiente mensaje hace 2 minutos ..
  #2 (permalink)  
Antiguo 04/06/2013, 09:56
Avatar de JorM  
Fecha de Ingreso: diciembre-2012
Ubicación: Argentina
Mensajes: 53
Antigüedad: 11 años, 3 meses
Puntos: 2
Respuesta: Función para fechas

Lo que hace esta función es tomar la fecha (DATETIME) en formato 2013-05-31 02:24:22 de la acción que se ejecuto y la convierte a una cadena: "Hace 5 minutos"

Cuando la fecha supera los 21 dias, directamente aparece la fecha: 2013-05-31 02:24:22.
Pero bueno eso lo podrias modificar...

Código PHP:
Ver original
  1. function dateFormat($date){                                     //Fecha 2013-05-31 02:24:22
  2.     $dU = strtotime($date);
  3.     $tf = abs($dU-time());
  4.     if($tf >= 0 && $tf < 60){                                   //[0 -- 59s] = Segundos
  5.         return 'Hace '.floor($tf).' Segundo(s)';
  6.     }elseif($tf >= 60 && $tf < 60*60){                          //[60seg(1min) -- 3600seg(60min)] = Minutos
  7.         $salida = 'Hace '.floor($tf/60).' Minuto(s)';
  8.     }elseif($tf >= 60*60 && $tf < 24*60*60){                    //[3600seg(1h) -- 86400seg(24h)] = Horas
  9.         $salida = 'Hace '.floor($tf/3600).' Hora(s)';
  10.     }elseif($tf >= 24*60*60 && $tf < 21*24*60*60){              //[86400seg(1d) -- 1814400seg(21d)] = Dias
  11.         $salida = 'Hace '.floor((($tf/3600))/24).' Dia(s)';
  12.     }elseif($tf >= 21*24*60*60){                                //[1814400seg(21d) -- mayor] = Fecha
  13.         $salida = $date;
  14.     }
  15.     return $salida;
  16. }
  #3 (permalink)  
Antiguo 04/06/2013, 10:12
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 15 años, 11 meses
Puntos: 31
Respuesta: Función para fechas

Muy buena función amigo, y resuelto matemáticamente tal y como debería ser todo ... gracias

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:34.