Twig Extension: Afficher l'âge sur base de la date de naissance
Vendredi 06 Octobre 2023 08:30

Twig Extension: Afficher l'âge sur base de la date de naissance

Alors certe il n’y a rien de compliqué à calculer l'âge d’après une date mais effectuer le calcul a l’endroit de l’affichage n’est pas très joli… Nous allons donc utiliser une technique dont je vous ai déjà parlé dans cet article: Développer des extensions Twig personnalisées dans Symfony.

Donc pour faire simple, nous allons ajouter notre fonction aux extensions twig custom.

Le code est relativement simple, la date de naissance en paramètre et un petit calcul de différence entre la valeur de ce paramètre et ‘NOW’ ne conservant que l’année. Et on oublie pas de bien l’ajouter dans le fichier AppRuntime.php

public function calculateAge(\DateTimeInterface $birthDate): int
{
    $today = new \DateTime();
    $age = $today->diff($birthDate)->y;
    return $age;
}

Sans oublier de modifier notre AppExtension.php en ajoutant

public function getFunctions(): array
{
    return [
        // …
        new TwigFunction('calculateAge', [AppRuntime::class, 'calculateAge']),
    ];
}

Pour l’appel rien de plus simple

{{ calculateAge(user.birthdate) }}