Хочу подсчитать возраст поста в блоге, к примеру так, как это реализовано на Тостере (Опубликовано только что, 2 мин, неделю назад и т.д.). Решил заморочиться с
mktime(). Код работает, но мне кажется можно как-то поизящнее. Вот моя функция:
<?php
// Calculate age of the post and print result
function timedifference($post_ts) {
$utime = mktime();
$diff = $utime - $post_ts;
if ($diff < 59) { echo "just now"; return; }
$minutes = floor($diff / 60);
$hours = floor($minutes / 60);
$days = floor($hours / 24);
$weeks = floor($days / 7);
$months = floor($days / 30);
$years = floor($months / 12);
if ($minutes < 59) $output = $minutes . " minutes ago";
if ($hours > 0 and $hours < 24) $output = $hours . " hours ago";
if ($days > 0 and $days < 30) $output = $days . " days ago";
if ($weeks > 0 and $weeks < 3) $output = $weeks . " weeks ago";
if ($months > 0 and $months < 11) $output = $months . " months ago";
if ($years > 0) $output = $years . " years ago";
echo $output;
}
?>
Аргумент функции
$post_ts вытягивается из БД, в ней хранится временной штамп публикации поста. Что скажете?