3

どうかお元気で。

配列からの日付があるかどうかを確認する必要があります

var arrayDates = ["2013-07-26", "2013-07-27"];

の日付範囲です

var startDate = new Date("2013-07-10");
var endDate = new Date("2013-07-10");

私は本当に行き詰まり、混乱し始めました。誰でもそれを手伝ってくれませんか。

PS 上記の日付は例であり、動的になります。

ありがとうございました!

4

4 に答える 4

3

文字列ではなく実際の日付オブジェクトを使用する必要があります。

日付の解析にdateJsを使用することを検討して ください http://www.datejs.com/

しかし実際には、日付の配列を繰り返し処理し、開始日と終了日のティック値の間にあるかどうかを確認する必要があります。

これを試して:

var arrayDates = [];

arrayDates.push(new Date(2013, 7 , 26));
arrayDates.push(new Date(2013, 7 , 27));

var startDate = new Date("2013-07-10");
var endDate = new Date("2013-07-10");

for(i = 0; i < arrayDates.length; i++){
if(arrayDates[i] >= startDate &&   arrayDates[i] <= endDate) {
   alert('Yes');
 }
}
于 2013-07-09T14:01:55.123 に答える
3

日付オブジェクトを取得したら、それらを非常に簡単な方法で比較できます。下部にあるこのリンクを参照してください。

あなたの質問はjqueryとタグ付けされているので、次のようにすることができます:

$.each(arrayDates, function(i, val) {
    if (val > endDate || val < startDate)
    {
        //Date is outside of that range
    }
});
于 2013-07-09T14:13:52.920 に答える
3

別の方法 - http://jsfiddle.net/Mh5vn/

var ds = ["2013-07-26", "2013-07-27"];

Array.prototype.between = function(arg) {
    var d1 = new Date(this[0]),
        d2 = new Date(this[1]),
        d3 = new Date(arg);

    return (d1.getTime() <= d3.getTime() && d3.getTime() <= d2.getTime());
}

console.log( ds.between('2013-07-26') );
// true

console.log( ds.between('2013-07-28') );
// false
于 2013-07-09T14:15:39.063 に答える