2017-10-06 2 views
-1

Je ne parviens pas à trouver une question/réponse sur la façon de valider une entrée de date en utilisant moment.js pour m'assurer qu'elle est dans ce format, "2017-12-31T23: 59: 59Z". Étant donné que j'ai une date sous forme de chaîne, "2017-12-31T23: 59: 59Z", comment peut-on valider que la chaîne de date est strictement dans le format spécifié, "AAAA-MM-JJThh: mm : ssZ ".Comment valider la date avec Moment.js dans un format spécifié?

J'ai essayé ce qui suit et cela ne semble pas fonctionner pour moi.

var dateTime = "2017-12-31T23:59:59Z"; 
 
var utc = moment(dateTime, "YYYY-MM-DDThh:mm:ssZ", true) 
 
var isUTC = utc.isValid(dateTime); 
 

 
console.log(isUTC);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

Quelqu'un pourrait-il s'il vous plaît fournir quelques exemples?

Merci à l'avance R

+1

Convertir votre code à un extrait runnable montre qu'il fonctionne très bien. Le problème était avec 'const moment = require ('moment')' – RobG

+0

Je pensais que ça devrait revenir vrai, plutôt. Sauf si ma spécification de format est invalide? – Roobie

+0

Veuillez utiliser majuscules 'HH' pour 0-23 heures, minuscules' hh' pour 01-12. – VincenzoC

Répondre

2

jetons de moment sont sensibles à la casse, vous devez utiliser majuscules HH pour analyser 0-23 heures, hh est pour l'analyse syntaxique 1-12. Voir moment(String, String, Boolean) docs.

Voici un exemple vivant:

var dateTime = "2017-12-31T23:59:59Z"; 
 
var utc = moment(dateTime, "YYYY-MM-DDThh:mm:ssZ", true) 
 
var isUTC = utc.isValid(); 
 
console.log(isUTC); 
 

 
utc = moment(dateTime, "YYYY-MM-DDTHH:mm:ssZ", true) 
 
isUTC = utc.isValid(); 
 
console.log(isUTC);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

+0

Merci! cela fonctionne bien pour moi. Je suis juste tombé sur hh et HH. – Roobie