function tidSiden($time) {
$periods = array("sekunder", "minutter", "timer", "dager", "uker", "måneder", "år", "tiår");
$lengths = array("60","60","24","7","4.35","12","10");
$difference = time() - $time;
$tense = "siden";
for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}
return round($difference)." $periods[$j] $tense";
}
$tid_siden = tidSiden( strtotime('22-09-2012') );
echo $tid_siden; //5 måneder siden
<?php
function timespan($timestamp) {
$now = time();
$diff = abs($now - $timestamp);
$plural = array('sekunder', 'minutter', 'timer', 'dager', 'uker', 'måneder', 'år');
$singular = array('sekund', 'minutt', 'time', 'dag', 'uke', 'måned', 'år');
$interval = array(60, 60, 24, 7, 4.35, 12);
for ($i=0, $y=count($interval); $i<$y && $diff>=$interval[$i]; $i++) {
$diff /= $interval[$i];
}
$diff = floor($diff);
return sprintf(
'%d %s %s',
$diff,
$diff == 1 ? $singular[$i] : $plural[$i],
$now > $timestamp ? 'siden' : 'til'
);
}
timespan(time()-1800); // 30 minutter siden
timespan(time()+3600); // 1 time til