wiki:CopixValidatorDate

Présentation

Ce validateur vérifie l'intégrité d'une date (en prenant en compte les années bissextile) et permet de rajouter des critères de borne.

Par défaut, ce validateur s'attend à recevoir la date au format de la langue courante (cf CopixDateTime::getDateFormat). Ce comportement est modifiable grâce à l'option "format".

Exemple d'utilisation

<?php
_validator ('date')->check ($dateNaissance);

Détail des options

  • min (optionnel) - La date donnée devra être supérieure (ou égale) à min pour être valide
  • max (optionnel) - La date donnée devra être inférieure (ou égale) à max pour être valide
  • format (par défaut "date") (Copix 3.0.5+) - Le format de la date reçue en paramètre. Les valeurs possibles sont :
    • yyyymmdd
    • yyyymmddhhiiss
    • date
    • datetime
    • timestamp

NOTE : Si vous spécifiez un format de date qui ne figure pas dans la liste, une exception sera levée.

NOTE 2 : Les options min & max s'attendent à recevoir une date au format respectant l'option "format".

Exemples

<?php
// Vérifie que la date est valide, retourne un CopixErrorObject
_validator ('date')->check ('01/01/200y');

// Vérifie que la date existe dans le calendrier, retourne un CopixErrorObject
_validator ('date')->check ('32/12/2008');

//Vérifie que la date soit entre 1970 et aujourd'hui
_validator ('date', array ('min'=>'01/01/1970', 'max'=>date ('d/m/Y')))->check ($date);

//Vérifie que la date soit inférieure ou égale à aujourd'hui
_validator ('date', array ('max'=>date ('d/m/Y')))->check ($jourRevolu);

//Vérifie que la date soit au minimum un jour de cette année
_validator ('date', array ('min'=>'01/01/'.date ('Y')))->check ($cetteAnne);

//Vérification avec un format YYYYMMDD, ici faux car le 32 décembre n'existe pas.... même en 2008
_validator ('date', array ('format'=>'yyyymmdd'))->check ('20081232');

//Vérification avec un format YYYYMMDD, on passe du coup min et max dans le même format....
_validator ('date', array ('format'=>'yyyymmdd', 'min'=>'20081101', 'max'=>'20081128'))->check ('20081201');