Javascript 如何使用Moment.js将日期验证为指定格式?

Javascript 如何使用Moment.js将日期验证为指定格式?,javascript,validation,date,momentjs,Javascript,Validation,Date,Momentjs,我找不到关于如何使用moment.js验证日期输入以确保其采用此格式的现有问题/答案,“2017-12-31T23:59:59Z” 鉴于我已经将日期作为字符串“2017-12-31T23:59:59Z”,如何验证日期字符串是否严格按照指定的格式“YYYY-MM-DDThh:MM:ssZ”进行 我试过以下方法,但似乎对我不起作用 var dateTime=“2017-12-31T23:59:59Z”; var utc=时刻(日期时间,“YYYY-MM-DDThh:MM:ssZ”,真) var i

我找不到关于如何使用moment.js验证日期输入以确保其采用此格式的现有问题/答案,“2017-12-31T23:59:59Z”

鉴于我已经将日期作为字符串“2017-12-31T23:59:59Z”,如何验证日期字符串是否严格按照指定的格式“YYYY-MM-DDThh:MM:ssZ”进行

我试过以下方法,但似乎对我不起作用

var dateTime=“2017-12-31T23:59:59Z”;
var utc=时刻(日期时间,“YYYY-MM-DDThh:MM:ssZ”,真)
var isUTC=utc.isValid(日期时间);
console.log(isUTC)

瞬间标记区分大小写,您应该使用大写的
HH
来解析
0-23
小时,
HH
用于解析
1-12
。见文件

这里有一个活生生的例子:

var dateTime=“2017-12-31T23:59:59Z”;
var utc=时刻(日期时间,“YYYY-MM-DDThh:MM:ssZ”,真)
var isUTC=utc.isValid();
console.log(isUTC);
utc=时刻(日期时间,“YYYY-MM-DDTHH:MM:ssZ”,真)
isUTC=utc.isValid();
console.log(isUTC)

将代码转换为可运行的代码段表明它工作正常。问题在于
const moment=require('moment')
我认为它应该返回true,而不是。除非我的格式规范无效?请使用大写
HH
0-23小时,小写
HH
用于01-12。很抱歉,我找不到我的问题的编辑按钮。下面是我在@vincenzoc的建议后所做的尝试:var validDateUTC=(dateTime)=>{const DATE\u FORMAT=“YYYY-MM-DDTHH:MM:SSZ”;const DATE\u LENGTH=20;var isUTC=false;if(dateTime.LENGTH==DATE\u LENGTH){const moment=require('moment');var utc=moment(dateTime,DATE\u FORMAT,true);isUTC=utc.isValid(dateTime);}return isUTC;};为了测试上面的函数,我在Chai中有一些代码:descripe('UTC日期时间验证',()=>{it('should'a validdate',()=>{const dateTime=“2017-12-31T23:59:59Z”;assert.isTrue(validation.validDateUTC(dateTime));});//它现在似乎有效,但我不确定它是否有效???谢谢!对我来说很好。只是偶然发现了hh和hh。