cs_HMax
Messages postés1Date d'inscriptionmardi 22 juillet 2003StatutMembreDernière intervention22 juillet 2003 22 juil. 2003 à 11:29
Personnelement, je pense que la meilleur facon de vérifier qu'une date est valide est tout d'abord de la convertir au format ISO.
YYYY-MM-DD HH:MM:SS
Une fois cette date au format ISO, on peut la vérifier avec une RegExp
Ex: ([0-9]{4})(-)([0-1]{1,}[0-9]{1,})(-)([0-3]{1,}[0-9]{1,})( )([0-2]{1,}[0-9]{1,})(:)([0-5]{1,}[0-9]{1,})(:)([0-5]{1,}[0-9]{1,})
et même lui appliquer un bon vieux IsDate.
Le problème avec les date au format US/FR comme 02/15/2003 ou 15/02/2003 c'est que dans les 2 cas, IsDate renverra vrai, même si on veut vérifier que la date n'est pas au format anglais par exemple... D'ou l'intéret du format ISO, qui ne change jamais. Ne fonctionner qu'avec ce format est à mon avis la seule solution pour éviter tout problème de date.
cyril722
Messages postés26Date d'inscriptionvendredi 1 février 2002StatutMembreDernière intervention16 août 2002 13 mars 2002 à 22:32
oui mais elle n'est pas tres precise ta fonction.Sans pour autant te vexer il faut que l'annee soit divisible 4 ou 100 et 400
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 27 janv. 2002 à 00:26
Tu es en train de me poousser a faire une source + rechercher... arf
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 27 janv. 2002 à 00:24
C juste un source pr tester le format de la date pas de prendre en compte le jour exact qd est né le christ.....
shaiulud
Messages postés404Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention15 juillet 201422 21 janv. 2002 à 10:27
ici nous avons un gros proble quand à la validité de la date
ex: un 30 février de dérange pas du tout ni un 31 avril.....
aucun test n'est fais si ne n'est sur les caractères.
si tu veux voir un test qui prend en compte les années bisextiles et séculaires.
tu peux le trouver dans ma librairie javascript dispo ici
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 12 janv. 2002 à 23:04
tiens g modifie mon expression et ca devrai marcher mieux!
vbtom
Messages postés229Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention 5 octobre 2003 12 janv. 2002 à 23:01
Ouais je sé mais bon c histoire dutiliser les expressions reguliere!
Le but de ce site:
Donnée plein de truc au visiteur!
apres c a lui de trier
c exactement c ke je fais!
Moi jutiliserai jsm une expression réguliere pr une date! c clair!
A#
cs_Jos
Messages postés128Date d'inscriptionmardi 26 juin 2001StatutMembreDernière intervention 8 février 2005 12 janv. 2002 à 20:35
Je ne veux pas m'acharner sur ton cas, mais j'ai passé un été à trippoter les dates, alors laisses moi t'apporter mes commentaires pour cette source! héhé ;-)
Ta technique n'est pas mauvaise pour tester le format 99/99/99 où 9 représente un chiffre quelconque, mais à mon avis, elle n'est pas très efficace pour traiter les dates, en soit. En effet, si je lui passe 78/95/34 elle me retournera True, mais ça n'aura rien d'une date. Je te conseille plutôt de te pencher vers la fonction IsDate, qui est tout de même très puissante.
Laisses-moi d'ailleurs te livrer l'exemple fournis dans Vbs Doc, par rapport à cette fonction!
22 juil. 2003 à 11:29
YYYY-MM-DD HH:MM:SS
Une fois cette date au format ISO, on peut la vérifier avec une RegExp
Ex: ([0-9]{4})(-)([0-1]{1,}[0-9]{1,})(-)([0-3]{1,}[0-9]{1,})( )([0-2]{1,}[0-9]{1,})(:)([0-5]{1,}[0-9]{1,})(:)([0-5]{1,}[0-9]{1,})
et même lui appliquer un bon vieux IsDate.
Le problème avec les date au format US/FR comme 02/15/2003 ou 15/02/2003 c'est que dans les 2 cas, IsDate renverra vrai, même si on veut vérifier que la date n'est pas au format anglais par exemple... D'ou l'intéret du format ISO, qui ne change jamais. Ne fonctionner qu'avec ce format est à mon avis la seule solution pour éviter tout problème de date.
13 mars 2002 à 22:32
27 janv. 2002 à 00:26
27 janv. 2002 à 00:24
21 janv. 2002 à 10:27
ex: un 30 février de dérange pas du tout ni un 31 avril.....
aucun test n'est fais si ne n'est sur les caractères.
si tu veux voir un test qui prend en compte les années bisextiles et séculaires.
tu peux le trouver dans ma librairie javascript dispo ici
12 janv. 2002 à 23:04
12 janv. 2002 à 23:01
Le but de ce site:
Donnée plein de truc au visiteur!
apres c a lui de trier
c exactement c ke je fais!
Moi jutiliserai jsm une expression réguliere pr une date! c clair!
A#
12 janv. 2002 à 20:35
Ta technique n'est pas mauvaise pour tester le format 99/99/99 où 9 représente un chiffre quelconque, mais à mon avis, elle n'est pas très efficace pour traiter les dates, en soit. En effet, si je lui passe 78/95/34 elle me retournera True, mais ça n'aura rien d'une date. Je te conseille plutôt de te pencher vers la fonction IsDate, qui est tout de même très puissante.
Laisses-moi d'ailleurs te livrer l'exemple fournis dans Vbs Doc, par rapport à cette fonction!
Dim MyDate, YourDate, NoDate, MyCheck
MyDate "19 octobre 1962": YourDate #19/10/62#: NoDate = "Bonjour"
MyCheck = IsDate(MyDate) ' Renvoie True.
MyCheck = IsDate(YourDate) ' Renvoie True.
MyCheck = IsDate(NoDate) ' Renvoie False.
@+