Foros del Web » Programando para Internet » PHP »

como mostra fecha tipo fb

Estas en el tema de como mostra fecha tipo fb en el foro de PHP en Foros del Web. hola amigos tengo una duda como le puedo hacer para cuando muestro yo un registro me diga su fecha como tipo facebook cuando tu posteas ...
  #1 (permalink)  
Antiguo 15/05/2011, 18:04
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años, 1 mes
Puntos: 8
como mostra fecha tipo fb

hola amigos
tengo una duda como le puedo hacer para cuando muestro yo un registro me diga su fecha como tipo facebook cuando tu posteas algo este te dise "hace 1 hora" o "hace 15 dias"

cuando se registre un articulo este guarda en la bd con su fecha de publicacion formato aaaa-mm-dd

segun veo tengo tendria que captura las horas, minutos y segundos. eso lo se
pero q mas le fata?

Hace 34 minutos

gracias
  #2 (permalink)  
Antiguo 15/05/2011, 21:49
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como mostra fecha tipo fb

haces una consulta mysql

Código MySQL:
Ver original
  1. SELECT *, TIMESTAMPDIFF(MINUTE,campo_fecha,NOW()) AS diferencia FROM tabla WHERE campo = condicion

donde TIMESTAMPDIFF(MINUTE,campo_fecha,NOW()) te da la diferencia entre la fecha de registro y la actual en minutos; puedes cambiarla a horas o días.

el resultado lo metes en una función. esta me la encontre por estos foros asi que la dejo:

Código PHP:
function tiempo($tiempo) {
    if (
$tiempo 60) {
        
$tiempo $tiempo;
        
$valor " minutos";
    } elseif (
$tiempo 60 && $tiempo 1440) {
        
$tiempo $tiempo 60;
        
$tiempo number_format($tiempo);
        
$valor " horas";
    } elseif (
$tiempo 1440) {
        
$tiempo $tiempo 1440;
        
$tiempo number_format($tiempo);
        
$valor " días";
    }

    return 
$tiempo $valor;

Código PHP:
echo "hace " tiempo($row->diferencia); 
  #3 (permalink)  
Antiguo 15/05/2011, 22:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: como mostra fecha tipo fb

Hace varios días hice algo así, pero usando el mismo formato de Twitter:
Código PHP:
Ver original
  1. <?php
  2. class RelativeTime extends DateTime{
  3.     public function getRelativeTimeFormat($dateTime = null)
  4.     {
  5.         $date = is_string($dateTime)
  6.             ? new DateTime($dateTime, $this->getTimezone())
  7.             : $this;
  8.  
  9.         $secs = time() - $date->getTimestamp();
  10.         $mins = floor($secs / 60);
  11.         $hours = floor($secs / 60 / 60);
  12.  
  13.         $formats = array('hora', 'minuto', 'segundos');
  14.         $relativeFormat = $hours > 23
  15.             ? $date->format('d M')
  16.             : ($hours > 0
  17.                 ? $hours . ' ' . $formats[0] . ($hours > 1 ? 's' : null)
  18.                 : ($mins > 0
  19.                     ? $mins . ' ' . $formats[1] . ($mins > 1 ? 's' : null)
  20.                     : $secs . ' ' . $formats[2]
  21.                 )
  22.             );
  23.  
  24.         return $relativeFormat;
  25.     }
  26. }
  27.  
  28. $obj = new RelativeTime('2011-05-16 00:30:01', new DateTimeZone('America/Puerto_Rico'));
  29. echo $obj->getRelativeTimeFormat(); // imprime algo como 24 minutos
  30. echo $obj->getRelativeTimeFormat('2011-05-16 00:45:01'); // imprime algo como 9 minutos
  31. echo $obj->getRelativeTimeFormat('2011-05-16 00:54:01'); // imprime algo como 1 minuto
  32. echo $obj->getRelativeTimeFormat('2011-05-16 00:55:01'); // imprime algo como 12 segundos
  33. echo $obj->getRelativeTimeFormat('2011-05-14 00:00:00'); // imprime 14 May
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 15/05/2011, 23:10
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años, 1 mes
Puntos: 8
Respuesta: como mostra fecha tipo fb

abimaelrc gracias pero el codigo q tus das como lo aplicacion a mi consulta? o como lo trabajaria

me gusta lo de memoadian ando trabajando en ello haber si da
  #5 (permalink)  
Antiguo 15/05/2011, 23:20
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: como mostra fecha tipo fb

el código de abimael es buenisimo simplemente aplicas dicho metodo a la consulta que haces

Código PHP:
Ver original
  1. echo $obj->getRelativeTimeFormat($row->campo_fecha);
  #6 (permalink)  
Antiguo 15/05/2011, 23:50
 
Fecha de Ingreso: abril-2010
Mensajes: 182
Antigüedad: 14 años, 1 mes
Puntos: 8
Respuesta: como mostra fecha tipo fb

me gusta mas el codigo de memoadian mas simple gracias

Última edición por servidigital; 16/05/2011 a las 00:28

Etiquetas: fecha, mostra, tipo
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 19:43.