Dans le cadre d'un projet sur lequel je travaille, j'ai besoin de valider une date entrée dans un fichier <input type="date">
Avec Safari 4/5 (sur Mac OSX), le Javascript ne parvient pas à analyser les dates du format suivant YYYY-MM-DD
en retournant NaN
au lieu de l'horodatage d'époque attendu.
J'utilise la technique suivante pour valider le champ juste avant que le formulaire ne soit soumis :
//value = '2010-06-21'
var stamp = Date.parse(value);
if (isNaN(stamp)) {
//notify user
} else {
value = new Date(stamp).format_mysql();
}
Où format_mysql()
est une fonction prototype qui formate la date (correctement) au format MySQL Date-Time (YYYY-MM-DD).
Remplacer le -
avec /
(AAAA/MM/JJ) donne un horodatage "correct".
Je tiens à préciser que le champ doit accepter n'importe quel format de date, pas seulement AAAA-MM-JJ, et que, même si je le souhaite, je ne peux pas utiliser des bibliothèques comme Date.js.
Comment puis-je corriger cela, ou existe-t-il une meilleure façon d'analyser/valider une date ?