Я делал так.
В БД записывал дату в формате date('U)', потом при загрузки страницы считал дату (текущую дату минусовал с той что в таблице), так и получал кол-во секунд прошендишх с момента публикации. Далее можно что-то типо этого:
if ($date > 60) {
echo "прошло " . $date . " секунд";
}
if ($date > 60 and $date < 3600) {
echo "прошло " . $date / 60 . " минут";
}
и т.д.