@IveLeen

Подсчет возраста поста с помощью функции PHP?

Хочу подсчитать возраст поста в блоге, к примеру так, как это реализовано на Тостере (Опубликовано только что, 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 вытягивается из БД, в ней хранится временной штамп публикации поста. Что скажете?
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Вы не первый кто над этим работает. Одно из лучших решений: moment.php С поддержкой разных форматов вывода, разных таймзон и языков.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы