从数组中过滤出最近的日期

时间:2018-01-03 16:31:30

标签: java jquery date

我有一个场景,我想从ajax调用中获取的一堆数据中选择最近的日期或过去的日期。

例如:如果我得到三行,其中有三个不同的日期,如12/12/201,12/3/201和1/1/2018,那么我想要返回1/1/2018。 如果数组不包含过去的日期,那么它应该将最近的日期返回到当前日期。

请建议我实现这一目标。

1 个答案:

答案 0 :(得分:0)

也许像这样的函数会很有用:

function getNearestDate(dates, date) {

    if (!dates || dates.length == 0) {
        return null;
    }

    if (!date) {
        date = new Date();
    }
    var result = dates[0];
    var dt = Math.abs(new Date(dates[0])-date);
    var minimum = dt;

    for (var i=1;i<dates.length;i++) {
        dt = Math.abs(new Date(dates[i])-date);
        if (dt < minimum) {
            result = dates[i];
            minimum = dt;
        }
    }
    return result;
}