È meglio farlo sul lato client nel livello di presentazione. Ecco una soluzione JS:
Timeago è un plug-in jQuery che semplifica il supporto dell'aggiornamento automatico di timestamp fuzzy (ad es. "4 minuti fa" o "circa 1 giorno fa").
Timeago trasformerà tutti gli elementi abbr con una class
di tempo fa e un timestamp ISO 8601 nel title
:
<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
in qualcosa del genere:
<abbr class="timeago" title="July 17, 2008">about a year ago</abbr>
Per convertire la data nel formato ISO 8601 puoi fare qualcosa del genere:
<?= date("c", $post_date) ?>
Esempi: