php - change - Cómo crear un formato de fecha amigable(por ejemplo, "enviado hace 2 días")
set date php (3)
Posible duplicado:
¿Cómo calculo el tiempo relativo?
Quiero formatear las fechas en mi aplicación web social al igual que Digg.com y otros sitios. Ahí, ve fechas muy amigables, como:
- justo ahora
- hace 3 minutos
- hace una hora
- hace 2 semanas
- hace 6 meses
- etc
Antes de pensar en crear tal cosa, ¿alguien sabe de algún script listo para usar 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.
Este es un duplicado de esta pregunta . 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 como el complemento timeago . Tiene la ventaja de actualizar el texto a medida que pasa el tiempo, de modo que si carga una página y dice "publicado hace 5 minutos" y mira de nuevo 5 minutos después, dice "publicado hace 10 minutos"
Gracias a todos por las respuestas, y lo siento por la pregunta duplicada. 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 PHP del código utilizado por . Hice un pequeño cambio en el cálculo del delta:
$delta = strtotime(gmdate("Y-m-d H:i:s", time())) - $time;
Como estoy almacenando mis fechas en MySQL como marca de tiempo en el formato GMT, tengo que usar las mismas para calcular la hora ACTUAL. Esto hace una comparación neutra de zona horaria, que es exactamente lo que se necesita en mi caso.
También puedes hacer esto en SQL: