--- /dev/null
+<?php\r
+\r
+// Sécurité\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+/**\r
+ * Une date au format JJ/MM/AAAA (avec séparateurs souples : espace / - .)\r
+ * Options :\r
+ * - format : permet de préciser le format de la date jma pour jour/mois/année (par défaut), mja (pour mois / jour / année), amj (année/mois/jour)\r
+ * TODO : compléter les formats \r
+ * On pourrait faire mieux, genre vérifier les jours en fonction du mois\r
+ * Mais c'est pas très important, on reste simple\r
+ *\r
+ * @param string $valeur\r
+ * La valeur à vérifier.\r
+ * @param array $options\r
+ * tableau d'options [NON UTILISE].\r
+ * @return string\r
+ * Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.\r
+ */\r
+function verifier_date_dist($valeur, $options=array()){\r
+ $erreur = _T('verifier:erreur_date_format');\r
+ if (!is_string($valeur))\r
+ return $erreur;\r
+\r
+ $ok = '';\r
+ // On tolère différents séparateurs\r
+ $valeur = preg_replace("#\.|/| #i",'-',$valeur);\r
+ \r
+ // On vérifie la validité du format\r
+ $format = isset($options['format']) ? $options['format'] : 'jma'; \r
+ \r
+ if ($format=='mja') {\r
+ if(!preg_match('#^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$#',$valeur)) return $erreur;\r
+ list($mois,$jour,$annee) = explode('-',$valeur);\r
+ } elseif ($format=='amj') {\r
+ if(!preg_match('#^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$#',$valeur)) return $erreur;\r
+ list($annee,$mois,$jour) = explode('-',$valeur);\r
+ } else {\r
+ // Format jma par défaut\r
+ if(!preg_match('#^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$#',$valeur)) return $erreur;\r
+ list($jour,$mois,$annee) = explode('-',$valeur);\r
+ }\r
+\r
+ // validité de la date\r
+ $erreur = _T('verifier:erreur_date');\r
+ if (!checkdate($mois, $jour, $annee)) return $erreur;\r
+ \r
+ return $ok;\r
+}\r