J’ai créé récemment une fonction simple et efficace pour récupérer l’âge d’un membre à partir de cette date de naissance. Trop souvent, j’ai vu des scripts donnant un âge approximatif calculé à partir des années de naissance.
Donc voici ma création, qui récupère l’année de naissance, ainsi que le mois et le jour ( aux formats date ‘Y’, ‘n’ et ‘j’, donc 1999, 2000 … ; 1, 2, 3, …, 11, 12 et 1, 2, 3, …, 30, 31 )

<?php
function age($annee_naissance, $mois_naissance, $jour_naissance, $timestamp = '') {
 
	//Si on veut vérifier à la date actuelle ( par défaut )
	if(empty($timestamp))
		$timestamp = time();
 
	//On evalue l'age, à un an par exces
	$age = date('Y',$timestamp) - $annee_naissance;
 
	//On retire un an si l'anniversaire n'est pas encore passé
	if($mois_naissance > date('n', $timestamp) || ( $mois_naissance== date('n', $timestamp) && $jour_naissance > date('j', $timestamp)))
		$age--;
 
	return $age;
}
 
echo age('1987','9','11');
// Affichera 20
echo age(1987,9,11);
// Affichera 20
echo age('1987','09','11');
// Affichera 20
echo age(1987,09,11);
// Ne fonctionnera pas : mauvais format de date !
?>

à noter un paramètre optionnel : $timestamp, si vous souhaitez calculer un age à une date en particulier 😉
Si cette fonction vous est utile, c’est impeccable !
( Et si vous trouvez un bug quelconque, n’hésitez pas à me le signaler, merci 😉 )

Tags : , , ,