Le 04 mai 2020 à 10:44:09 VinkingBanni a écrit :
Apres un petit test :
var dateInput = '40/05/2001';
var date = new Date(dateInput);
if(isNaN(date.getDate()) {
console.log('pas bon');
} else {
console.log(date.getDate();
}
pas besoin de faire un parse manuel. Et c'est plus propre
J'ai bien vu ton message et j'ai donc décidé de tester la fonction.
J'ai une page de test avec ce code là :
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Lire une valeur dans un champs de texte</title>
<meta charset="utf-8">
<style>
#bouton {
margin-top: 12px;
}
</style>
<script>
function controle() {
var date = '20/05/2001';
var myDate = new Date(date);
if (isNaN(myDate.getDate())) {
alert("DATE INVALIDE")
}
else {
alert("DATE VALIDE")
alert(myDate.getDate());
}
}
</script>
</head>
<body>
<h2>Lire une valeur dans un champs de texte</h2>
<form>
<input type="password" id="input" name="input" value=""><br>
<input type="submit" id="bouton" value="Contrôler" onclick="controle()">
</form>
</body>
</html>
Cependant, bien que ma date soit => '20/05/2001', ça m'affiche date invalide dans mon alert (c'est surement dégueulasse d'utiliser les alert pour ça je m'en excuse).
De plus là doc de l'objet Date du JS nous dit quand à l'entré d'un string en paramètre de new Date :
Une chaîne de caractère représentant une date. La chaîne doit être dans un format reconnu par la méthode Date.parse() (conforme à la RFC 1123 de l'IETF ou à l'ISO8601).
Note : L'analyse de chaînes via le constructeur Date (ou via la méthode Date.parse()) est déconseillée car il existe différentes incohérences entre les différents navigateurs. La prise en charge des chaînes de format de la RFC 2822 est une simple convention. La norme ISO 8601 n'est pas complètement respectée car les chaînes qui décrivent uniquement des dates (ex. "1970-01-01") sont considérées en UTC et non en heure locale.
Donc je pense que le format jj/mm/aaaa n'est pas reconnu par le constructeur de Date.
Message édité le 04 mai 2020 à 17:55:35 par Suzuka_Nakamoto