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

Roo*_*bie 3 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 = moment(dateTime, "YYYY-MM-DDThh:mm:ssZ", true)
var isUTC = utc.isValid(dateTime);

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

任何人都可以提供几个例子吗?

提前致谢 -R

Vin*_*zoC 9

时刻标记区分大小写,您应该使用大写HH来解析0-23小时,hh用于解析1-12. 请参阅moment(String, String, Boolean)文档。

这是一个活生生的例子:

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);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)