如何使用 moment.js(或替代库)解析日期以挑选出 2 月 31 日或 6 月 31 日 e、t、c 为无效日期?
我知道如果我这样做
moment("20-02-2000");
它说
Moment {_isAMomentObject: true, _i: "20-02-2000",
_isUTC: false, _locale: Locale, _d: Invalid Date}
所以它可以检测到无效日期,这很好
虽然我使用的是 yyyy-mm-dd
我似乎无法让它解析日期
moment("2000-02-31");
Moment {_isAMomentObject: true, _i: "2000-02-31",
_f: "YYYY-MM-DD", _isUTC: false, _pf: Object…}
^^ 那里没有关于无效日期的信息
moment("2000-02-40");
Moment {_isAMomentObject: true, _i: "2000-02-40",
_f: "YYYY-MM-DD", _isUTC: false, _pf: Object…}
^^ 那里没有关于无效日期的信息
moment("2000-40-01");
Moment {_isAMomentObject: true, _i: "2000-40-01",
_f: "YYYY-MM-DD", _isUTC: false, _pf: Object…}
^^ 那里没有关于无效日期的信息
已添加
var v=moment("2000-02-31");
v.toDate()
Thu Mar 02 2000 00:00:00 GMT+0000 (GMT Standard Time)
^^ 我发现,如果我给出像 2 月 31 日这样的无效日期,它就会将其标准化,但我希望它只是说无效。
我正在寻找一个函数,我给它“2000-31-02”,它说无效日期。
我已经看到建议将 moment.js 作为 javascript 的 Date 构造函数的替代品。我查看了 moment.js,因为 javascript 的 Date 构造函数也解析了 2 月 31 日,而没有说无效 javascript Date.parse assumes 31 days in February and all months? 。所以我希望 moment.js 能够做到这一点。如果可以的话,怎么办?如果没有,那么有没有 moment.js 的替代方案可以做到这一点?
我正在寻找一个可以导入的库,而不是重新发明轮子。
最佳答案
您可以首先使用 moment().isValid()
检查 moment 是否认为日期有效。
console.log(moment('2015-02-31').isValid());
//false
关于javascript-如何使用 moment.js(或替代库)解析日期以选出 2 月 31 日或 6 月 31 日等。无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32286062/