【发布时间】:2018-03-17 20:13:30
【问题描述】:
我无法找到有关如何使用 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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
谁能提供几个例子?
提前致谢 -R
【问题讨论】:
-
将您的代码转换为可运行的 sn-p 表明它工作正常。问题出在
const moment = require('moment') -
我认为它应该返回 true,而不是。除非我的格式规范无效?
-
0-23小时请使用大写
HH,01-12小时请使用小写hh。 -
抱歉,我找不到问题的编辑按钮。以下是我在@vincenzoc 的建议之后的尝试: var validDateUTC = (dateTime) => { const DATE_FORMAT = "YYYY-MM-DDTHH:mm:SSZ";常量 DATE_LENGTH = 20; var isUTC = false; if (dateTime.length===DATE_LENGTH) { const moment = require('moment'); var utc = moment(dateTime, DATE_FORMAT, true); isUTC = utc.isValid(dateTime); } 返回是UTC; };
-
为了测试上面的函数,我在 Chai 中有一些代码: describe('UTC date time validation', () => { it('should be a valid date', () => { const dateTime = "2017-12-31T23:59:59Z"; assert.isTrue(validation.validDateUTC(dateTime)); }); }); // 现在好像可以了,但是不知道是不是有效???
标签: javascript validation date momentjs