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

Symfony PHP Discussion :

traitement des dates


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 115
    Points : 75
    Points
    75
    Par défaut traitement des dates
    Bonjour,

    Je galère un peu avec les dates en ce moment. J'ai mes dates au format mysql en base de données. Cependant c'est pour travailler sur des dates qui ne sont pas encore définies à l'enregistrement (ex. date de fin ou date de modification).

    Cependant mysql me stocke la date au format 0000-00-00 00:00:00, ce qui me renvoie une exception avec twig ...

    J'ai deux choses en tête que j'aimerais faire :

    • vérifier si objet->tostring == '0000-00-00 00:00:00'
    • catcher l'exception dans twig ...


    La deuxième m'a l'air plus improbable vu qu'avec twig on ne peut pas y mettre du code php... La première serait-elle éventuellement possible sans que twig ne renvoie une exception ?

    Avez-vous d'autres solutions ?

    Merci !

  2. #2
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 115
    Points : 75
    Points
    75
    Par défaut
    Alors j'ai fait un workaround pour ce souci vu que plusieurs personnes ont le même à voir les réponses sur google.

    Dans l'entité je modifie mon getter de date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        /**
         * Get fdate
         *
         * @return \DateTime 
         */
        public function getFdate()
        {
            if($this->fdate->format('Y-m-d H:i:s') == '-0001-11-30 00:00:00') {
                return '0000-00-00 00:00:00';
            }
     
            return $this->fdate;
        }

    Et dans ce cas je renvoie un simple string que je peux traiter ou vérifier dans twig.

    Si quelqu'un a une solution plus propre et perenne je suis prenneur !

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Normalement tu travailles sans avoir connaissance des spécifications de la base de données. pour toi la date doit etre un objet datetime, peut importe son format en base de données.

    Si c'est du traitement autre que de l'affichage, ca n'a normalement rien à faire dans twig

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cependant mysql me stocke la date au format 0000-00-00 00:00:00
    le plus cohérent serait de mettre ce champ en nullable
    Et aprés de faire un affichage conditionnel dans twig

  5. #5
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 115
    Points : 75
    Points
    75
    Par défaut
    Mon principale souci est que le passage de du format mysql à twig renvoie une exception quand mysql à une date par défaut de type 0000-00-00 00:00:00

    Je ne trouve pas le moyen 'officiel' de gérer ça. Je passe donc par une méthode pour que, dans ce cas précis, je puisse outrepasser l'exception

  6. #6
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    115
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 115
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par arnooo999 Voir le message
    le plus cohérent serait de mettre ce champ en nullable
    Et aprés de faire un affichage conditionnel dans twig
    Ca posera problème en cas de suppression de la date ? Si je me souviens bien, nullable est présent tant qu'on a rien mis dans le champ. Si on le supprime il remet a 0000-00-00 00:00:00 ?

Discussions similaires

  1. traitement des dates avec java
    Par papoulouis dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 04/10/2008, 11h08
  2. [WB11] WEBDEV 11 : traitement des dates
    Par lediz dans le forum WebDev
    Réponses: 1
    Dernier message: 06/02/2008, 14h44
  3. [Oracle] traitement des dates au format string
    Par shaftJackson dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/01/2007, 18h25
  4. Exécuter un traitement à des dates précises
    Par Commodore dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 08/08/2006, 09h42
  5. Traitement des dates différent suivant le serveur
    Par le lynx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/09/2005, 11h14

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