/*
* Return a relative date
* Adapted from :
* http://blog.angechierchia.com/php-mysql/afficher-une-date-relative-en-php
*/
function getRelativeTime($time) {
$timeDiff = time() - $time;
if($timeDiff <= 0)
return "moins d'une seconde";
$timeDiff = abs($timeDiff);
$times = array(
31104000 => 'an{s}', // 12 * 30 * 24 * 60 * 60 secondes
2592000 => 'mois', // 30 * 24 * 60 * 60 secondes
604800 => 'semaine{s}', // 7 * 24 * 60 * 60 secondes
86400 => 'jour{s}', // 24 * 60 * 60 secondes
3600 => 'heure{s}', // 60 * 60 secondes
60 => 'minute{s}');
$strTime = NULL;
// Until that the rest can't being converted
while($timeDiff >= 60) {
foreach($times AS $seconds => $unit) {
$delta = floor($timeDiff / $seconds);
if($delta >= 1) {
$unit = str_replace('{s}', ($delta == 1 ? NULL : 's'), $unit);
$strTime .= "$delta $unit ";
$timeDiff -= $delta * $seconds;
}
}
}
// If there is still seconds
($timeDiff > 0)
&& $strTime .= "et $timeDiff secondes";
return trim($strTime);
}