Moment.js在传递日期时没有有效时间

时间:2017-05-09 02:28:51

标签: node.js momentjs

我正在阅读我拥有的旧csv文件中的值。这个文件有很多错误的数据,它应该只有时间值,但有时它上面有日期值。 我试图用moment.js来确定时间,但是当我运行此代码时:

const moment = require('moment');
console.log(moment('19/07/9130','hh:mm').isValid());

它返回true,我做错了什么?

2 个答案:

答案 0 :(得分:0)

1。 首先,您在时刻函数中提供了错误的格式,您正在以DD/MM/YYYY格式传递数据并定义格式hh:mm。你应该传递正确的格式。

2。 19/07/9130是有效期为9130且有效的未来年份的有效日期。如果要限制最长年份,可以使用isBefore方法

var mydate = moment('19/07/9130', 'DD/MM/YYYY');
var isValid = mydate.isValid() && mydate.isBefore('2050-01-01');

答案 1 :(得分:0)

阅读更多Moment.js docs,我发现第三个参数使Moment使用严格的解析。

const moment = require('moment');
console.log(moment('19/07/9130','hh:mm',true).isValid());

这很好用!