Salut tout le monde,
est ce que quelqu'un sais comment faire pour afficher le temps écoulé entre la date d'un post et la date courante ( time() ) comme pour le forum de Grafikart. Exemple : Il y a 1 heure, 57 minutes. J'ai trouvé une fonction :
// -------------------------------------------------------------------------
/**
* Affiche une date relative sous la forme il y a x jours/heures/minutes/secondes
*
* @name relative_time
* @param int $iTime : timestamp à convertir
* @return string
**/
function relative_time( $iTime = 0 ) {
$iTimeDifference = time() - $iTime;
if( $iTimeDifference<0 ) { return; }
$iSeconds = $iTimeDifference ;
$iMinutes = round( $iTimeDifference/60 );
$iHours = round( $iTimeDifference/3600 );
$iDays = round( $iTimeDifference/86400 );
$iWeeks = round( $iTimeDifference/604800 );
$iMonths = round( $iTimeDifference/2419200 );
$iYears = round( $iTimeDifference/29030400 );
if( $iSeconds<60 )
return "Il y a moins d'une minute";
elseif( $iMinutes<60 )
return 'Il y a ' . $iMinutes . ' minute' . ( $iMinutes>1 ? 's' : » );
elseif( $iHours<24 )
return 'Il y a ' . $iHours . ' heure' . ( $iHours>1 ? 's' : » );
elseif( $iDays<7 )
return 'Il y a ' . $iDays . ' jour' . ( $iDays>1 ? 's' : » );
elseif( $iWeeks <4 )
return 'Il y a ' . $iWeeks . ' semaine' . ( $iWeeks>1 ? 's' : » );
elseif( $iMonths<12 )
return 'Il y a ' . $iMonths . ' mois';
else
return 'Il y a ' . $iYears . ' an' . ( $iYears>1 ? 's' : » );
}
Mais le problème c'est qu'elle n'affiche que le nombre de jour ou seulement le nombre d'heure ou le nombre d'année ...etc.
Merci d'avance.
Pourtant la fonction semble bonne je vois pas trop le problème, surtout quel est claire, enfin si tu as compris le système tu peux vite le refaire, sinon en fait ça compare le timestamp du post moins celui de maintenant, le timestamp étant le nombre de secondes écoulées depuis le 1er Janvier 1970 si je ne me trompe pas, en gros si la différence des deux est inférieur à 60, c'est il y a moins d'une minutes, si c'est en dessous de 3600 (60*60) c'est il y a une heure, et ainsi de suite.