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 :

Date validator (sur les mois) [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 131
    Par défaut Date validator (sur les mois)
    bonjour à vous tous

    Pour faire un validateur sur une date j'ai dû mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      	$this->setValidator('date', new sfValidatorDate(
      	array(
      		'max'         => '6 mounths ago'
      	)));
    J'ai vu ça dans un exemple.. mais quand j'essaye , j'ai une erreur .. et si cela peut fonctionner ..est ce qu'il peut impacter sur le format de date que j'ai rendu format français?

    Merci par avance

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Les formats à utiliser sont les formats relatif de la fonction DateTime.

    Dans ton cas je verrais bien : "6 months ago" sans le "u"...

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Bonjour,

    Par rapport à "6 months ago", je pense que tu cherches plutôt un "min" non ?

    Sinon, en lisant la doc de sfValidatorDate, on peut voir que :
    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
      /**
       * Configures the current validator.
       *
       * Available options:
       *
       *  * date_format:             A regular expression that dates must match
       *                             Note that the regular expression must use named subpatterns like (?P<year>)
       *                             Working example: ~(?P<day>\d{2})/(?P<month>\d{2})/(?P<year>\d{4})~
       *  * with_time:               true if the validator must return a time, false otherwise
       *  * date_output:             The format to use when returning a date (default to Y-m-d)
       *  * datetime_output:         The format to use when returning a date with time (default to Y-m-d H:i:s)
       *  * date_format_error:       The date format to use when displaying an error for a bad_format error (use date_format if not provided)
       *  * max:                     The maximum date allowed (as a timestamp or accecpted date() format)
       *  * min:                     The minimum date allowed (as a timestamp or accecpted date() format)
       *  * date_format_range_error: The date format to use when displaying an error for min/max (default to d/m/Y H:i:s)
       *
       * Available error codes:
       *
       *  * bad_format
       *  * min
       *  * max
       *
       * @param array $options    An array of options
       * @param array $messages   An array of error messages
       *
       * @see sfValidatorBase
       */
    Du coup, "min" et "max" sont des dates, et non pas des strings quelconques.
    Tu devrais plutôt avoir quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $this->setValidator('date', new sfValidatorDate(
          array(
              'min' => '2010-04-01'
          )));
    Ou un autre format de date. Et si tu veux pouvoir calculer 6 mois avant la date d'aujourd'hui, tu fais le calcul avant et tu lui passes en paramètre ta date.

    EDIT

    Mes excuses, je ne savais pas que ça existait effectivement ces données relatives !!
    Merci pour le lien Michel.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Le calcul marche aussi !

    Mais le "6 month ago", c'est pas si mal en fait.

    Là où c'est vraiment intéressant c'est "last friday of next month", parce que, pour le calculer, c'est un brin la galère.

    Bon, il manque juste un mot clef pour le dimanche de pâque pour que la fonction soit parfaite

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 131
    Par défaut
    je prefère "6 month ago" , que je trouve dynamique, mieux que je donne une date précise, car les 6 mois seront relatifs par rapport à la date d'aujourd'hui?

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 131
    Par défaut
    j'ai regardé ce que bilbonec m'a envoyé et je trouve "date_format_range_error" est intéréssante mais je ne sais pas comment l'intégrer dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      	$this->setValidator('date', new sfValidatorDate(
      	array(
      		'min'         => '6 month ago'
      	)));
    Merci

  7. #7
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    C'est quoi la question ?

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

Discussions similaires

  1. [Dates] Précisions sur les include
    Par 78alex78 dans le forum Langage
    Réponses: 8
    Dernier message: 15/01/2007, 16h24
  2. [Dates] Question sur les fonctions Date
    Par cerede2000 dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2006, 17h26
  3. [Dates] tri sur les dates
    Par udta5371 dans le forum Langage
    Réponses: 5
    Dernier message: 13/07/2006, 21h49
  4. [Dates] Calcul sur les dates...
    Par gawelldanor dans le forum Langage
    Réponses: 10
    Dernier message: 04/04/2006, 11h07
  5. Réponses: 12
    Dernier message: 31/03/2006, 20h02

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