Comment tester si une variable est un object Moment.js?

Mon application possède un formulaire HTML avec certaines entrées remplies à partir du backend et d’autres entrées saisies par l’utilisateur (dans une entrée de time ). Une fonction onChange parcourt chaque entrée lorsque l’utilisateur modifie une valeur.

Les entrées renseignées à partir du backend sont converties en objects moment , les dates saisies par l’utilisateur sont de simples chaînes. Cela signifie que la fonction onChange rencontre des objects moment et certaines chaînes. J’ai besoin de savoir quelles entrées sont des objects moment et lesquels ne le sont pas.

Quelle est la méthode recommandée pour tester si une variable est un object moment ?

J’ai remarqué que les objects de moment ont une propriété _isAMomentObject mais je me demande s’il existe une autre façon de tester si une variable est un object de moment .

Une autre option que j’ai essayée est d’appeler le moment sur la variable indépendamment. Cela convertit les variables de ssortingng en objects de moment et ne semble pas affecter les objects de moment existants.

Moment a une méthode isMoment pour un tel but. Il n’est pas très facile de trouver dans les documents à moins de savoir quoi chercher.

Il vérifie d’abord instanceof , puis échoue (par exemple dans certaines situations de sous- _isAMomentObject ou de domaines croisés), il testera la propriété _isAMomentObject .

Vous pouvez vérifier s’il s’agit d’un instant d’ instanceof :

 moment() instanceof moment; // true 

moment () instance du moment;

sera toujours vrai, parce que si vous avez

  • moment (indéfini) instance du moment
  • moment (“salut”) instance de moment

vous créez toujours un object de moment. Donc, la seule façon est de vérifier comme ça

  • moment (propriété) .isValid ()