IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

dateDiff avec le twig


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut dateDiff avec le twig
    bonjour à toutes et à tous,
    je cherche à trouver la différence en jours entre deux date en twig, et pour faire ceci j'ai suit la doc des extension en twig et j'ai procédé comme suite :

    NafExtension.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    namespace NAF\CongeBundle\Twig;
     
    class NafExtension extends \Twig_Extension
    {
        public function getFunctions()
        {
            return array(
                'dateDiff' => new \Twig_Function_Method($this, 'dateDiff'),
            );
        }
     
        public function dateDiff($dateFin, $dateDebut)
        {
            $nbrJours = $dateFin->diff($dateDebut)->days;
     
            return $nbrJours;
        }
     
        public function getName()
        {
            return 'naf_extension';
        }
    }
    CongeBundleExtension.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
     
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
     
    /**
     * Description of CongeBundleExtension
     *
     * @author Hp pavilion
     */
     
    namespace NAF\CongeBundle\DependencyInjection;
     
    use Symfony\Component\DependencyInjection\ContainerBuilder;
    use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
    use Symfony\Component\HttpKernel\DependencyInjection\Extension;
    use Symfony\Component\Config\FileLocator;
     
    class NafCongeBundleExtension extends Extension {
     
        public function load(array $configs, ContainerBuilder $container) {
            $configuration = new Configuration();
            $config = $this->processConfiguration($configuration, $configs);
     
            $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
            $loader->load('services.yml');
        }
     
    }
    services.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #services:
    #    naf_conge.example:
    #        class: NAF\CongeBundle\Example
    #        arguments: [@service_id, "plain_value", %parameter%]
     
    services:
        twig.naf_extension:
            class: NAF\CongeBundle\Twig\NafExtension
            tags:
                - { name: twig.extension }
    et l'appel de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ dateDiff(entity.dateFin, entity.dateDebut) }}
    ce code me donne cette erreur
    The function "dateDiff" does not exist
    je ne vois pas d'où viens l'erreur, merci de m'aider c'est vraiment urgent

    Merciiiii

  2. #2
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    bonjour à toutes et à tous,
    j'ai changé un peut le fichier NafExtension.php mais toujours j'ai la même erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <?php
    namespace NAF\CongeBundle\Twig;
     
    class NafExtension 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'; 
        } 
     
    }
    on faite je cherche une équivalence de dateDiff en Twig si vous avez une idée n'hésite pas à m'aider car je suis vraiment besoin de ceci.

    Merci

  3. #3
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    bonjour à vous,
    je suis toujours bloqué à ce niveau, j'utilise la version symfony 2.5.5

    Merci

  4. #4
    Membre régulier
    Homme Profil pro
    Datascientist
    Inscrit en
    Août 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Datascientist
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 248
    Points : 110
    Points
    110
    Par défaut
    bonjour tout le monde,
    alors j'ai trouvé une solution traditionnel avec la création d'une méthode getDatediff() dans l'entité.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Mail avec template twig non trouvé
    Par KLeMiX dans le forum Symfony
    Réponses: 1
    Dernier message: 16/04/2013, 00h12
  2. DATEDIFF avec year ? comment faire !
    Par sayfouche dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/04/2012, 09h04
  3. [AC-2007] Problème Datediff avec RunTime 2007
    Par Triton972 dans le forum Runtime
    Réponses: 6
    Dernier message: 24/08/2011, 18h57
  4. DATEDIFF avec uniquement les jours ouvrés
    Par Inconnu_du_69 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/03/2009, 15h32
  5. DateDiff avec 2 dates dans 2 tables distinctes
    Par delff dans le forum Access
    Réponses: 2
    Dernier message: 24/07/2006, 09h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo