Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/05/2011, 22:56
Avatar de abimaelrc
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