Voici le scénario :
J'ai un String
et un format de date différent. Ex :
date : 2016-10-19
dateFormat : "DD-MM-YYYY".
J'ai besoin de vérifier si cette date est une date valide.
J'ai essayé les choses suivantes
var d = moment("2016-10-19",dateFormat);
d.isValid()
est de retour false
à chaque fois. Moment.js n'analyse-t-il pas la date dans le format donné ?
J'ai ensuite essayé de formater la date en DD-MM-YYYY
d'abord et ensuite le passer à Moment.js :
var d = moment("2016-10-19").format(dateFormat);
var date = moment(d, dateFormat);
Maintenant date.isValid()
me donne le résultat souhaité, mais ici l'objet date de Moment.js est créé deux fois. Comment puis-je éviter cela ? Existe-t-il une meilleure solution ?
Pour info, je n'ai pas le droit de changer la dateFormat
.
0 votes
N'avez-vous pas le droit de modifier la valeur de dateFormat ? Dans ce cas, vous devrez modifier le format de l'entrée, car le 19 octobre 2016 correspond à AAAA-MM-JJ et non à JJ-MM-AAAA. Que pouvez-vous modifier ?
0 votes
L'entrée provient du sélecteur de date. Je ne peux pas changer cela aussi :(
1 votes
Puis-je demander pourquoi vous n'êtes pas autorisé à modifier la variable dateFormat ? var d = moment("19-10-2016", "DD-MM-YYYY") ; résoudrait vos problèmes en ce qui me concerne.
0 votes
Je ne peux vraiment pas le dire. Mais il n'est pas dans mon contrôle de changer cette valeur.
2 votes
Duplicata possible de Comment tester qu'une chaîne de caractères est une date valide ou non en utilisant moment ?