|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 18 070 ![]() |
S'il est relativement facile de vérifier qu'une date semble valide (jour de 1 à 31 éventuellement de 1 à 30 / mois de 1 à 12 et année sur 4 chiffres), il est beaucoup plus difficile de vérifier réellement qu'une date entrée correspond à une vraie date (en particulier pour les années bissextiles).
Heureusement, l'objet Date() de javascript possède une astuce souvent méconnue : Toute valeur numérique est valable pour la définition d'une date, du coup, si vous entrez une date qui n'existe pas, javascript va rectifier de lui-même (par exemple, le 32 janvier deviendra le 1er février). Grâce à cette astuce, nous pouvons facilement vérifier le format de la date (dans l'exemple donné le jour et le mois sur 1 ou 2 chiffres et l'année sur 4 séparés par des /) puis on affecte les valeurs splittées à une nouvelle date (en prenant soin de rectifier le mois qui commence par 0 en js !) et on vérifie que le jour le mois et l'année obtenus sont identiques à ceux de la date initiale. Si ce n'est pas le cas, la date n'est pas valide ! Voici la source : Code :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() danseur Inscription : août 2003 Messages : 2 728 ![]() |
et ce test-là Bovino, tu le connais?
http://www.developpez.net/forums/m878767-31/ merci d'utiliser la fonction Recherche! (nan, je rigole |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Développeur informatique Inscription : février 2006 Messages : 3 612 ![]() |
de plus , javascript rectifit automatiquement les dates .. par exemple le 30 février donnera 1er mars
__________________
est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) |
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 18 070 ![]() |
Citation:
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||
|
00
|
|
|
#5 |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 271 ![]() |
Merci Bovino, je t'emprunte ta fonction
|
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 18 070 ![]() |
Avec plaisir !
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Inscription : mars 2008 Messages : 3 972 ![]() |
N'oublie pas de la rendre, elle pourrait être utile à d'autres.
__________________
Médias : influence, pouvoir et fiabilité - Découvrez MooTools - Le mathématicien et ses esclaves Elen Poukram - Isegoria - Sandawe |
|
|
00
|
|
|
#8 | ||
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 271 ![]() |
Je viens de tomber sur un bug bizarre avec cette fonction quand j'utilise la fonction avec cette date 28/02/2013 ça renvoi 'Date non valable !'. J'ai pallié le bug sans trop comprendre comment en faisant :
Code :
Si quelqu'un a une explication... |
||
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() ![]() Cyril Ingénieur développement logiciels Inscription : avril 2007 Messages : 524 ![]() |
En passant, il serait mieux de faire ce test :
Les ma_date.getMonth / ma_date.getMonth renvoient des int tandis que les autres sont des chaines (quand c'est inférieur à 10 ça revient à faire un test 9 != 09 par exemple. Ça renvoie non égal alors qu'ils le sont en réalité) En somme, cela donnerait : Code Javascript :
|
||
|
|
00
|
|
|
#10 | ||||
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 18 070 ![]() |
Citation:
Voir le test suivant Code :
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
||||
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() ![]() Cyril Ingénieur développement logiciels Inscription : avril 2007 Messages : 524 ![]() |
Citation:
Citation:
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com