Cat timp a trecut, ca pe Facebook

Orice faci pe Facebook se afiseaza cat timp a trecut pana in momentul de fata. Este draguta ideea, am implementat-o la o aplicatie. Functia calculeaza pe baza datei si a timpului (in format UNIX) perioada relativa care a trecut de la o actiune pana in momentul de fata. Pot fi cateva secunde, minute, ore, ani.

<?php
function relative_time($unix_time) {
	$period = '';
	$secs_ago = time() - $unix_time;

	if ($secs_ago < 60) 
	{
		$period = ($secs_ago == 1) ? 'o secunda' : $secs_ago. ' secunde';
	} 
	elseif ($secs_ago < 3600)
	{
		$period = round($secs_ago / 60);
		$period = ($period == 1) ? 'un minut' : $period.' minute';
	}
	elseif ($secs_ago < 86400)
	{
		$period = round($secs_ago / 3600);
		$period = ($period == 1) ? 'o ora' : $period.' ore';
	}
	elseif ($secs_ago < 604800)
	{
		$period = round($secs_ago / 86400);
		$period = ($period == 1) ? 'o zi' : $period.' zile';
	}
	elseif ($secs_ago < 2419200) 
	{
		$period = round($secs_ago / 604800);
		$period = ($period == 1) ? 'o saptamana' : $period.' saptamani';
	}
	elseif ($secs_ago < 29030400)
	{
		$period = round($secs_ago / 2419200);
		$period = ($period == 1) ? 'o luna' : $period.' luni';
	}
	else
	{
		$period = round($secs_ago / 29030400);
		$period = ($period == 1) ? 'un an' : $period.' ani';
	}
	return $period;
}

Ce parere aveti, poate fi imbunatatit?

Leave a Reply

Your email address will not be published. Required fields are marked *