web-dev-qa-db-fra.com

Fonction isSame () dans moment.js ou validation de la date

Je dois valider la date de l'utilisateur et vérifier si elle est dans un format particulier. Si oui, alors ce sera accepté sinon ce ne sera pas. Je cherche une sorte de

value.match("regular expression") 

Ce qui précède fonctionne bien si, je dois choisir parmi quelques formats. Alors, je suis tombé sur ce moment et je voulais savoir comment utiliser isSame (). J'ai essayé de l'implémenter mais sans succès. Comme :

var x=moment("MM/DD/YYYY") ;
x.isSame("28-02-1999");  // am getting false which is right
var x=moment("28-02-1999","DD-MM-YYYY") ;
x.isSame("28-02-1999");  // am getting false which is wrong

Alors, aidez s'il vous plaît dans cela. Merci

39
user3050590

Docs - Is Same

Vérifiez si un moment est identique à un autre moment.

moment('2010-10-20').isSame('2010-10-20'); // true

Si vous souhaitez limiter la granularité à une unité autre que des millisecondes, transmettez les unités en tant que deuxième paramètre.

moment('2010-10-20').isSame('2009-12-31', 'year'); // false
moment('2010-10-20').isSame('2010-01-01', 'year'); // true
moment('2010-10-20').isSame('2010-12-31', 'year'); // true
moment('2010-10-20').isSame('2011-01-01', 'year'); // false

Votre code

var x=moment("28-02-1999","DD-MM-YYYY"); // working
x.isSame("28-02-1999"); // comparing x to an unrecognizable string

Si vous essayez moment("28-02-1999"), vous obtenez une date non valide. Donc, comparer x à une chaîne de date non valide renvoie false.

Pour résoudre ce problème, utilisez soit le format de date par défaut (ISO 8601):

var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame("1999-02-28"); // YYYY-MM-DD

Ou passez isSame un objet moment.

var x = moment("28-02-1999","DD-MM-YYYY");
x.isSame( moment("28-02-1999","DD-MM-YYYY") );
99
slicedtoad