如果日期范围之间的日期

时间:2014-03-12 10:22:33

标签: javascript

我正在处理两个日期,例如29/03/201404/04/2014,我有一系列日期,例如01/04/201402/04/2014,我需要找出该数组中有多少(如果有的话)日期在日期范围之间。

最好的方法是什么?

编辑:最终代码,从ponciste的回答中稍微调整一下

//date1 and date2 are the start/end dates
bhDays = new Array();
$.each(DataBridge.bankHolidays, function(i, v) {
    var americanDate = v.split('-'); 
    americanDate = americanDate[1] + '/' + americanDate[0] + '/' + americanDate[2];
    date = new Date(americanDate);
    if (date1 <= date && date2 >= date) {
        bhDays.push(date);
    }
});

3 个答案:

答案 0 :(得分:1)

在这种情况下最好处理Date对象

所以你的代码应该是这样的:

var strDateFrom = "29/03/2014";
var strDateTo = "04/04/2014";

var dateFrom = strDateFrom.split("/");
var dateTo = strDateTo.split("/");

var dates = ["01/04/2014", "02/04/2014"];

var from = new Date(dateFrom[2], dateFrom[1]-1, dateFrom[0]);
var to   = new Date(dateTo[2], dateTo[1]-1, dateTo[0]);

dates.forEach(function(date) {
    var dateToCheck = new Date(date[2], date[1]-1, date[0]);
    if(dateToCheck > from && dateToCheck < to)
});

答案 1 :(得分:0)

Date object会做你想要的 - 为每个日期构建一个,然后使用常用的运算符进行比较。

构造您的日期对象并使用&lt;进行比较|| &GT;运营商。

答案 2 :(得分:0)

我强烈建议使用 moment.js 库(以及所有其他日期/时间操作)并使用difference函数。