Я использую этот помощник для Codeigniter (вы можете увидеть оригинал здесь: форумы по Codeigniter )
Я использую этот код:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if( ! function_exists('relative_time'))
{
function relative_time($datetime)
{
if(!$datetime)
{
return "no data";
}
if(!is_numeric($datetime))
{
$val = explode(" ",$datetime);
$date = explode("-",$val[0]);
$time = explode(":",$val[1]);
$datetime = mktime($time[0],$time[1],$time[2],$date[1],$date[2],$date[0]);
}
$difference = time() - $datetime;
$periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
$lengths = array("60","60","24","7","4.35","12","10");
if ($difference > 0)
{
$ending = 'ago';
}
else
{
$difference = -$difference;
$ending = 'to go';
}
for($j = 0; $difference >= $lengths[$j]; $j++)
{
$difference /= $lengths[$j];
}
$difference = round($difference);
if($difference != 1)
{
$period = strtolower($periods[$j].'s');
} else {
$period = strtolower($periods[$j]);
}
return "$difference $period $ending";
}
}
Я неконечно, если вы всегда хотите, чтобы он говорил «дни», этот код выполняет все, что меньше всего (например, «49 секунд назад», «17 минут назад», «6 часов назад» или «10 дней назад», илинедели или месяцы (или даже годы). Если вы ищете только дни, изменить этот сценарий будет достаточно просто.