检查日期是否有效

2022-08-30 01:44:57

下面是一个方案:

我有一个日期和一个不同的日期格式。例如:
日期:2016-10-19
日期格式:“DD-MM-YYYY”。String

我需要检查此日期是否为有效日期。

我尝试过以下事情

var d = moment("2016-10-19",dateFormat);

d.isValid()每次都回来。Moment.js不是以给定的格式解析日期吗?false

然后,我尝试先格式化日期,然后将其传递给 Moment.js:DD-MM-YYYY

var d = moment("2016-10-19").format(dateFormat);
var date = moment(d, dateFormat);

现在给了我想要的结果,但在这里,Moment.js date 对象被创建了两次。我该如何避免这种情况?有没有更好的解决方案?date.isValid()

仅供参考,我不允许更改.dateFormat


答案 1

能够找到解决方案。由于我得到的日期是ISO格式,因此仅提供日期到时刻才能验证它,而无需传递dateFormat。

var date = moment("2016-10-19");

然后给出所需的结果。date.isValid()


答案 2

var date = moment('2016-10-19', 'DD-MM-YYYY', true);

调用时应添加第三个强制执行严格解析的参数。以下是当前文档的相关部分 http://momentjs.com/docs/#/parsing/string-format/ 它接近本节的末尾。moment