如何使用Moment.js将日期验证为指定的格式?
问题描述:
我无法找到关于如何使用moment.js验证日期输入以确保其格式为“2017-12-31T23:59:59Z”的现有问题/答案。如何使用Moment.js将日期验证为指定的格式?
鉴于我有一个字符串日期“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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
任何人都可以请提供一些例子?
在此先感谢 -R
答
瞬间令牌是区分大小写的,你应该使用大写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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
+0
谢谢!对我来说工作正常。就偶然发现了......和HH。 – Roobie
转换代码到可运行的代码片段显示它工作正常。问题出在'const moment = require('moment')' – RobG
我认为它应该返回true,而是。除非我的格式说明无效? – Roobie
0-23小时请使用大写'HH',小写'hh'为01-12。 – VincenzoC