Как показать возраст человека в Symfony с помощью twig

У меня есть этот PHP-код, который работает, но я хотел бы использовать его, но в пределах twig в symfony.

<?php
    $cumpleanos = new DateTime("1982-06-03");
    $hoy = new DateTime();
    $annos = $hoy->diff($cumpleanos);
    echo $annos->y;

person juanitourquiza    schedule 04.06.2018    source источник
comment
Предполагая, что у вас нет объекта, к которому можно привязать это поведение, вероятно, лучше всего выполнить такой расчет в вашем контроллере и отправить вычисленное значение в Twig.   -  person Darragh Enright    schedule 04.06.2018
comment
дублировать stackoverflow.com/a/27205095/9750031   -  person Andrew Vakhniuk    schedule 04.06.2018
comment
Я думаю, что это расширения twig, но они решают разные проблемы.   -  person juanitourquiza    schedule 04.06.2018


Ответы (1)


Чтобы этот код помог мне в этом сообщении: https://es.stackoverflow.com/a/73288/6524

Единственный вариант в файле EdadUsuarioExtension.php

<?php

namespace AppBundle\Twig;


//Extension muestra la edad del usuario
class EdadUsuarioExtension extends \Twig_Extension
{

public function getFunctions()
{

    return array(
    new \Twig_SimpleFunction('edad_usuario', array($this, 'edad_usuario')),
    );

}


public function getName()
{

    return 'edad_usuario_extension';

}


public function edad_usuario($fecha)
{

    $cumpleanos = new \DateTime($fecha);
    $hoy = new \DateTime();
    $edad = $hoy->diff($cumpleanos);
    return $edad->y;

 }
}
person juanitourquiza    schedule 04.06.2018