对于moment.js,我有一段非常简单的代码(请参见下文),它应该解析为true,但是解析为false。
使用isBefore()或isAfter()会得到相同的意外行为,这使我相信我定义日期的方式有问题。
var format = 'YYYY-MM-DDTHH:mm:ss.SSSSZ';
var testTime = moment('Thu Jun 27 2019 05:33:19 GMT+0000', format);
var startPeriod = moment('Thu Jun 27 2019 04:00:19 GMT+0000', format);
var endPeriod = moment('Thu Jun 27 2019 10:00:19 GMT+0000', format);
console.log(
testTime.isBetween(startPeriod, endPeriod)
);
我在这里想念什么?
答案 0 :(得分:2)
moment()
的第二个参数采用当前第一个参数的格式。这看起来不正确。您可以通过分别记录时间并查看时间是不正确的(可能是1970年)来验证这一点
请参见https://momentjs.com/docs/#/parsing/creation-data/
实际上,您应该可以完全删除第二个参数,因为输入日期已经是标准格式(ISO字符串)。
var testTime = moment('Thu Jun 27 2019 05:33:19 GMT+0000');
var startPeriod = moment('Thu Jun 27 2019 04:00:19 GMT+0000');
var endPeriod = moment('Thu Jun 27 2019 10:00:19 GMT+0000');
console.log(
testTime.isBetween(startPeriod, endPeriod)
);