Quelqu'un sait comment on pourrait comparer deux dates ?
Une simple comparaison avec un addRule marche si on se contente d'un == ou != mais pas pour un < ou >.
Si quelqu'un a une idée lumineuse, je suis preneuse!
Merci d'avance
Quelqu'un sait comment on pourrait comparer deux dates ?
Une simple comparaison avec un addRule marche si on se contente d'un == ou != mais pas pour un < ou >.
Si quelqu'un a une idée lumineuse, je suis preneuse!
Merci d'avance
Pour simplifier la comparaison des dates, ecrit les au format annee mois jour ( par exemple '20081231').
Tu pourras alors utiliser les operateurs < et >
Comment fait on pour, à partir de deux éléments "date", fabriquer des variables de la forme anneemoisjour puisqu'on a pas encore submit le formulaire ?
* ou alors j'ai oublié un épisode ? *
Bon j'ai quand même avancé la dessus : (ajout dans la page où se trouvent mes dates à comparer)
Bien entendu, le résultat est que ca m'ajoute un élément text quand je reviens sur cette page du formulaire et que la condition est vérifiée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $test = $this->controller->exportValue('page3', 'startvalidity'); $datetempo = $test['Y'].$test['M'].$test['d']; $test = $this->controller->exportValue('page3', 'endvalidity'); $datetempo2 = $test['Y'].$test['M'].$test['d']; if ($datetempo > $datetempo2) $this->addElement('text', 'test','start>end');
Il faudrait que je puisse faire passer cela en temps que règle mais je ne sais pas comment faire.
Eureka j'ai trouvéééééé
J'ai tout d'abord fait un groupe pour mes éléments (date de début et date de fin).
Ensuite j'ai créé ma propre règle (registerRule).
Et le plus beau dans tout cela, c'est que ça marche!
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 [...] $option = array('addEmptyOption' => true); $validity['startvalidity'] =& $this->createElement('date','startvalidity',null,$option); $validity['endvalidity'] =& $this->createElement('date','endvalidity',null,$option); $this->addGroup($validity,'validity',$GLOBALS[lStartValidity],' '.$GLOBALS[lEndValidity]); [...] function compare_dates($element_name,$element_value){ $date1 = $element_value['startvalidity']['Y'].$element_value['startvalidity']['M'].$element_value['startvalidity']['d']; $date2 = $element_value['endvalidity']['Y'].$element_value['endvalidity']['M'].$element_value['endvalidity']['d']; if ($date1 == '' && $date2 != '') return false; if ($date1 != '' && $date2 == '') return false; elseif (strlen($date1) < 6 && strlen($date2) > 6) return false; elseif (strlen($date1) > 6 && strlen($date2) < 6) return false; elseif($date1 > $date2) return false; else return true; } $this->registerRule('cmp_date','function','compare_dates'); $this->addRule('validity',$GLOBALS['lCmpDate'],'cmp_date'); [...]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager