[eluser]quindo[/eluser]
Thank you for that information.
I used the code there to replace the timespan code in the codeigniter date helper:
Code:
function timespan ($t1=1, $t2 = '', $precision = 6, $abbr = false)
{
if (! function_exists('JP_date_trans'))
{
function JP_date_trans($datumnaam)
{
$CI =& get_instance();
$CI->lang->load('date');
$ret="";
switch($datumnaam)
{
case 'year':
$ret = $CI->lang->line('date_year');
break;
case 'years':
$ret = $CI->lang->line('date_years');
break;
case 'month':
$ret = $CI->lang->line('date_month');
break;
case 'months':
$ret = $CI->lang->line('date_months');
break;
case 'week':
$ret = $CI->lang->line('date_week');
break;
case 'weeks':
$ret = $CI->lang->line('date_weeks');
break;
case 'day':
$ret = $CI->lang->line('date_day');
break;
case 'days':
$ret = $CI->lang->line('date_days');
break;
case 'hour':
$ret = $CI->lang->line('date_hour');
break;
case 'hours':
$ret = $CI->lang->line('date_hours');
break;
case 'minute':
$ret = $CI->lang->line('date_minute');
break;
case 'minutes':
$ret = $CI->lang->line('date_minutes');
break;
case 'second':
$ret = $CI->lang->line('date_second');
break;
case 'seconds':
$ret = $CI->lang->line('date_seconds');
break;
}
return $ret;
}
}
if ( ! is_numeric($t1))
$t1 = 1;
if ( ! is_numeric($t2))
$t2 = time();
if (preg_match('/\D/', $t1) && ($t1 = strtotime($t1)) === false)
return false;
if (preg_match('/\D/', $t2) && ($t2 = strtotime($t2)) === false)
return false;
if ($t1 > $t2)
list($t1, $t2) = array($t2, $t1);
$diffs = array(
'year' => 0, 'month' => 0, 'day' => 0,
'hour' => 0, 'minute' => 0, 'second' => 0,
);
$abbrs = array(
'year' => 'yr', 'month' => 'mth', 'day' => 'day',
'hour' => 'hr', 'minute' => 'min', 'second' => 'sec'
);
foreach (array_keys($diffs) as $interval)
{
while ($t2 >= ($t3 = strtotime("+1 ${interval}", $t1)))
{
$t1 = $t3;
++$diffs[$interval];
}
}
$stack = array();
foreach ($diffs as $interval => $num)
{
$stack[] = array($num, JP_date_trans($interval. ($num != 1 ? 's' : '') ) );
}
$ret = array();
while (count($ret) < $precision && ($item = array_shift($stack)) !== null)
{
if ($item[0] > 0)
$ret[] = "{$item[0]} {$item[1]}";
}
return implode(', ', $ret);
}