我有这样的日期格式
[{"Exp_Date":"28-Feb-19"},{"Exp_Date":"30-Apr-19"},{"Exp_Date":"28-Jun-19"},{"Exp_Date":"29-Nov-19"}]
现在,我必须检查我的Date是否小于对象数组的First值。如果少于那么我必须选择第一个对象
如果该日期过期,那么我必须使用下一个日期。
我想马上实现这一点。
我知道力矩的减少,但这并不能解决我的目的。任何人都可以指导我如何解决此问题。任何帮助都非常感激
答案 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])