支票日期已过期或不在Moment Date格式上

时间:2019-02-21 12:48:33

标签: javascript momentjs

我有这样的日期格式

[{"Exp_Date":"28-Feb-19"},{"Exp_Date":"30-Apr-19"},{"Exp_Date":"28-Jun-19"},{"Exp_Date":"29-Nov-19"}]

现在,我必须检查我的Date是否小于对象数组的First值。如果少于那么我必须选择第一个对象

如果该日期过期,那么我必须使用下一个日期。

我想马上实现这一点。

我知道力矩的减少,但这并不能解决我的目的。任何人都可以指导我如何解决此问题。任何帮助都非常感激

4 个答案:

答案 0 :(得分:0)

尝试一下


const a = [{ "Exp_Date": "28-Feb-19" }, { "Exp_Date": "30-Apr-19" }, { "Exp_Date": "28-Jun-19" }, { "Exp_Date": "29-Nov-19" }];
let i = 0;
while (a[i] && moment().isAfter(moment(a[i].Exp_Date, "DD-MMM-YY"))) {
    i++;
}
if (a[i]) {
    return a[i];
} else {
    return null;
}

您可以看到它here

答案 1 :(得分:0)

您可以循环执行此检查:

var array = [{"exp_date":"28-Feb-19"},{"exp_date":"10-Feb-19"}];
for(i=0;i<array.length;i++){
    console.log(moment(new Date()).isAfter(moment(new Date(array[i]["exp_date"]))));
}

这使用了new Date()对象,这些对象似乎在瞬间变得更容易

答案 2 :(得分:0)

const a = [{ "Exp_Date": "28-Feb-19" }, { "Exp_Date": "30-Apr-19" }, { "Exp_Date": "28-Jun-19" }, { "Exp_Date": "29-Nov-19" }];
let i = 0;
while (a[i] && moment().isAfter(moment(a[i].Exp_Date),'DD-MMM-YY')) { // <-- change this
    i++;
}
if (a[i]) {
    return a[i];
} else {
    return null;
}

阮的最新答案

答案 3 :(得分:0)

好吧,我对moment一无所知,但是用js很容易做到。

var dates =[{"Exp_Date":"28-Feb-19"},{"Exp_Date":"30-Apr-19"},{"Exp_Date":"28-Jun-19"},{"Exp_Date":"29-Nov-19"}]

var d = new Date("01-march-19");
// sort the array first, this is optional, then find the current Exp_Date Index
var index = dates
 .sort((a,b)=> new Date(a.Exp_Date) - new Date(b.Exp_Date))
 .findIndex((item)=> new Date(item.Exp_Date) >= d);
 
console.log(dates[index])