PHP функция — дата в формате «х Дней назад»

Здравствуйте друзья, буквально недавно мне для работы нужна была функция, которая бы позволила мне вывести новость или сообщение, а после вывести фразу «х дней назад», если речь о часах, к примеру сообщение выставлено буквально недавно то сообщение будет звучать «10 часов назад».

В общем как обычно была нужда сделать такую функцию и естественно я ее сделал, но думаю многим эта функция будет полезна, к тому же этот пост я делаю возможно даже больше для себя — чтобы потом сильно долго не искать.

Кстати, решил сделать еще дополнительную страничку, где вы можете протестировать функцию для того чтобы наглядно увидеть как она работает.

В остальном функция выглядит следующим образом:

function timeago($date) {
	$timestamp = strtotime($date);	
	$strTime = array("секунд", "минут", "часов", "дней", "месяцев", "лет");
	$length = array("60","60","24","30","12","10");

	$currentTime = time();
	if($currentTime >= $timestamp) {
		$diff     = time()- $timestamp;
		for($i = 0; $diff >= $length[$i] &amp;&amp; $i < count($length)-1; $i++) {
		$diff = $diff / $length[$i];
	}

	$diff = round($diff);
	return $diff . " " . $strTime[$i] . " назад";
   }
}

// Применение:
if(!empty($_POST["date-field"])) {
	$strTimeAgo = timeago($_POST["date-field"]); // 2020-05-20
	echo "<div class='date-result'>Результат: " . $strTimeAgo."</div>";
} 

Единственное чего еще не хватает к данной функции это склонение слов для того, чтобы при получении значения в годах, выводилось «1 год назад», «5 лет назад» и так дальше.

Прилагаю сам php файлик для скачивания, чтобы если что можно было скачать.

Пользуйтесь на здоровье

Оставьте комментарий