J'en ai eu besoin dans mon actuel projet perso visible ici :
https://github.com/julnegre/activities_management/
Si ce n'est pas déjà fait ajouter à votre config.yml :
services:
jng.twig.jng_extension:
class: Jng\ActivityBundle\Twig\JngExtension
tags:
- { name: twig.extension }
Dans votre bundle puis dans le dossier twig, pour mon projet : src/Jng/ActivityBundle/Twig/JngExtension.phpNous allons mettre le code suivant :
class JngExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
'diffToDate' => new \Twig_Filter_Method($this, 'diffToDateFilter'),
);
}
public function diffToDateFilter($date1, $date2, $unit=null )
{
if( is_null($date2) )
return;
$t = $date2->getTimestamp()-$date1->getTimestamp();
if( is_null($unit) ){
$unit="s";
if( $t >= 3600)
$unit = "h";
else if( $t >= 60)
$unit = "min";
}
if( $unit == "s" )
return $t." s";
else if( $unit == "min" )
return round($t/60)." min";
else if( $unit == "h" )
return round($t/3600)." h";
}
public function getName()
{
return 'jng_extension';
}
}
Ensuite dans votre template on pourra utiliser le filter ainsi :
{{ entity.start|diffToDate(entity.end) }}
Aucun commentaire:
Enregistrer un commentaire