2009-03-21 14 views
11

Duplicar posible:
How do I calculate relative time?Cómo crear un formato de fecha aceptados (por ejemplo, "presentado hace 2 días")

Quiero formatear fechas en mi aplicación web social muy parecido Digg.com y otros sitios lo hacen. Allí, se ve fechas muy amigables, tales como:

  • ahora hace
  • 3 minutos
  • hace una hora
  • Hace 2 semanas
  • hace 6 meses
  • etc

Antes de que me vuelva loco creando tal cosa, ¿alguien sabe de algún script listo para esto donde Simplemente inserto un sello de fecha y una fecha amigable que se da en base a cómo se relaciona con la hora actual.

PD: Necesito esto en PHP, pero el pseudocódigo o cualquier otro idioma también está bien.

Respuesta

10

Este es un duplicado de este question. Tiene una ráfaga de ejemplos de código sobre cómo lograr esto, además del código que este sitio usa. Eché un vistazo y parece que hay una implementación de PHP publicada allí también.

Además de todo esto, si está utilizando jQuery puede hacer este lado del cliente con algo así como el complemento timeago. Tiene la ventaja de actualizar el texto conforme pasa el tiempo, así que si carga una página y dice "publicado hace 5 minutos" y vuelve a mirar 5 minutos después, dice "publicado hace 10 minutos"

2

Gracias a todos por las respuestas, y lo siento por la pregunta duplicado. No encontré el duplicado cuando lo estaba buscando porque no sabía realmente qué términos de búsqueda usar.

De todos modos, tengo mi problema resuelto gracias a la traducción de PHP del código utilizado por stackoverflow. Hice un pequeño cambio en el cálculo del delta:

$delta = strtotime(gmdate("Y-m-d H:i:s", time())) - $time; 

Desde que estoy almacenando las fechas en MySQL como marca de tiempo en el formato GMT, tengo que usar el mismo para el cálculo de la hora actual. Esto hace una comparación neutra de zona horaria, que es exactamente lo que se necesita en mi caso.

Cuestiones relacionadas