获取Javascript中日期的范围

获取Javascript中日期的范围,javascript,jquery,arrays,date,range,Javascript,Jquery,Arrays,Date,Range,我有一个包含一个或多个数组的数组: 例如,对于一个数组: var array1 = [['2','name','surname','2014-01-01']]; 或者对于多个,它是动态的,有时它带有1个其他的2个,3个,。。。但始终带有订购的日期“asc” var array1 = [['2','name','surname','2014-01-01'],['2','name1','surname1','2014-02-02'],['2','name2','surname2','2014-03

我有一个包含一个或多个数组的数组:

例如,对于一个数组:

var array1 = [['2','name','surname','2014-01-01']];
或者对于多个,它是动态的,有时它带有1个其他的2个,3个,。。。但始终带有订购的日期“asc”

var array1 = [['2','name','surname','2014-01-01'],['2','name1','surname1','2014-02-02'],['2','name2','surname2','2014-03-03'],['2','name3','surname3','2014-04-02']];
那么我有一个约会:

var givenDate="2014-03-28";
我想得到givenDate在范围内的数组。我要开始的数组。在本例中,第三个数组:['2','name2','names2','2014-03-03']

我不知道哪种方法最有效

谢谢

编辑: 这将返回与给定数据完全匹配的数组。如果没有找到精确匹配,它将返回最接近给定日期的数组:

var array1 = [['2','name','surname','2014-01-01'],['2','name1','surname1','2014-02-02'],['2','name2','surname2','2014-03-03'],['2','name3','surname3','2014-04-02']];
var givenDate = '2014-02-12';
var key = false;
var index;
var differences = [];
for( index=0; index < array1.length; ++index ){
    if( array1[index][3] == givenDate ){
        key = index;
    }       
}
if( !key ){
    for( index=0; index < array1.length; ++index ){
        difference = givenDate.replace(/-/g, '') - array1[index][3].replace(/-/g, '')
        differences[difference] = [];
        differences[difference]['key'] = index;
    }   
}
if( key ){
    alert( 'Exact match for given date is found and holds key: ' + key );
    alert( 'Resulting array: ' + array1[key] );         
}
if( differences.length > 0 ){
    alert( 'Found a nearest key' );
    var firstKey = getFirstKey(differences);
    alert( 'Resulting Array: ' + array1[differences[firstKey]['key']] );
}
function getFirstKey( data ) {
    for (elem in data ) 
        return elem;
}

我认为OP想要的是在范围内的日期,而不是精确匹配的日期。至于他的问题:那么我得到了一个日期:var givenDate=2014-03-28;他没有指定范围,而是指定了一个日期。他如何在一个范围内与一个日期匹配?OP:我想得到givenDate所在范围内的数组。我要开始的数组。在本例中,第三个数组:['2','name2','names2','2014-03-03']仍然不是一个范围。也就是说,如果给定日期为:var givenDate=2014-03-28,则他需要数组中日期小于给定日期的键;