Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/09/2007, 10h38   #1
Membre du Club
 
Avatar de mattyeux
 
Étudiant
Inscription : décembre 2006
Messages : 167
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 167
Points : 64
Points : 64
Par défaut Expression régulière sur une date

Bonsoir,

J'aimerais contrôler par expression régulière une date entrée par un utilisateur.

J'ai réussi à trouver quelques exemple sur internet, mais je n'arrive pas à modifier ce que j'ai pour faire ce que je veux:

J'aimerai bien que mon expression régulière puisse controler si une date est de la forme :
  • JJ/MM/AAAA HH:MM:SS (forme normale)
  • Mais aussi pouvoir accepter des jours et des mois à 1 caractère (pour les jours et les mois < 10 su style 8/9/2007).
  • La même chose pour les heures, les minutes et les seconde (8:0:0)
  • Et enfin pouvoir prendre des Date sans les heures (JJ/MM/AAAA au lieu de JJ/MM/AAAA HH:MM:SS)

Voila, je sais pas si ma demande est compliquée, mais moi qui connais pas trop les expressions régulière, je n'en vois pas le bout ...

Merci pour votre aide

Matthieu
mattyeux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 11h16   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Code :
1
2
3
4
5
6
7
8
9
10
function valider_date($date) {
    if (preg_match('~^(\d{1,2})([/-])(\d{1,2})\2(\d{4})\s+((\d{1,2}):(\d{1,2}):(\d{1,2}))?$~D', $date, $m))      {
        if (isset($m[5])) {
            return checkdate($m[3], $m[1], $m[4]) && $m[6] >= 0 && $m[6] < 24 && $m[7] >= 0 && $m[7] < 60 && $m[8] >= 0 && $m[8] < 60;
        } else {
            return checkdate($m[3], $m[1], $m[4]);
        }
    }
    return FALSE;
}
(non testé)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h57.


 
 
 
 
Partenaires

Hébergement Web