我循环遍历日期列表,并使用MomentJS检查它们是否在日期范围内。日期为2019年8月26日至2019年8月31日。没有检查到2019年8月31日的日期是真的,但它应该是真的。
我在范围开始日期上使用isSameOrAfter,在范围结束日期上使用isSameOrBefore。
moment(startDate) // 1567290720000
moment(startDate).format("MM/DD/YYYY") // 08/31/2019
moment(rangeDateEnd,"MM/DD/YYYY").format("MM/DD/YYYY") // 08/31/2019if (moment(v.startDate).isSameOrAfter(moment(rangeDateStart, "MM/DD/YYYY"))
&& moment(v.startDate).isSameOrBefore(moment(rangeDateEnd, "MM/DD/YYYY"))) {
console.log(moment(startDate).format("MM/DD/YYYY"));
}我得到了8/26,8/27,8/28,8/29和8/30,但没有8/31...
我遗漏了什么?
提前感谢!
发布于 2019-08-30 02:54:23
试试这个:
let datearray = ["2019-08-25", "2019-08-26", 1567116000000, "2019-08-31", "2019-09-01"];
rangeDateStart = moment("2019-08-26");
rangeDateEnd = moment("2019-08-31");
for (let i = 0; i < datearray.length; i++) {
if (moment(datearray[i]).isSameOrAfter(moment(rangeDateStart, "MM/DD/YYYY"))
&& moment(datearray[i]).isSameOrBefore(moment(rangeDateEnd, "MM/DD/YYYY"))) {
console.log(moment(datearray[i]).format("MM/DD/YYYY"));
} else {
console.log("*** out of range "+moment(datearray[i]).format("MM/DD/YYYY"))
}
}<script src="https://cdn.jsdelivr.net/momentjs/2.13.0/moment.min.js"></script>
发布于 2019-08-30 22:07:37
我无法使用时区,所以我尝试了一些不同的方法,格式化startDate似乎是可行的:)
moment(startDate) // 1567290720000
moment(startDate).format("MM/DD/YYYY") // 08/31/2019
moment(rangeDateEnd,"MM/DD/YYYY").format("MM/DD/YYYY") // 08/31/2019
if (
moment(moment(v.startDate).format("MM/DD/YYYY"))
.isSameOrAfter(moment(rangeDateStart, "MM/DD/YYYY"))
&& moment(moment(v.startDate).format("MM/DD/YYYY"))
.isSameOrBefore(moment(rangeDateEnd, "MM/DD/YYYY")));
}现在我收到了一个弃用警告,我不确定如何修复:(
https://stackoverflow.com/questions/57715739
复制相似问题