2017-06-30 3 views
0

私は今この問題に悩まされています。キャンペーンの日付が2週間以内に期限切れになると、クラスにクラスを追加する必要があります。検索された日付は、次の形式日付文字列を取り、有効期限が2週間未満の場合にクラスを追加してください

2017年7月26日

私はこの関数を実行するときの方法は、文字列を保持しているVARに添付されますから、私は引数として日付ストリングを渡しています内の文字列であります。しかし、何らかの理由で、この論理は機能しません。私は完全にこれをねじ込んでいますか?それはどこかで黙って失敗している。ありがとうございました。私はそれが容易でなければならないことを知っているが、私はループに巻き込まれている。

campMethods.EndDateAlert = function (dateString) { 
    var currentDate = new Date(); 
    var twoWeeks = new Date(); 
    twoWeeks.setDate(currentDate.getDate() + 14) 
    var $EndDateSpan = $('.campaign-end-date'); 

    if (dateString <= twoWeeks) { 
     $EndDateSpan.addClass('red'); 
    } 
    return dateString; 
}; 
+1

[JavaScriptを持つ2つの日付を比較](https://stackoverflow.com/questions/の可能性のある重複492994/compare-two-dates-with-javascript) –

+0

また、最初の部分は[JavaScriptのDateTime文字列を解析する](https://stackoverflow.com/q/1576753/215552)です。 –

+0

下記の私の答えをチェック:)。 –

答えて

1

これはいくつかの数式で行うことができます。キーは、2週間= 14日間です。ここで

はあなたのための純粋なJavascriptの例である:

var date = "07/26/2017".split("/"); 
 
var formatedDate = (date[2] + '' + date[0] + '' + date[1]); 
 

 

 
var currentDate = new Date(); 
 

 
var today = currentDate.getFullYear() +''+ ("0" + (currentDate.getMonth() + 1)).slice(-2)+''+("0" + currentDate.getDate()).slice(-2); 
 

 
var compareDay = formatedDate - today; 
 

 

 
if(compareDay < 14){// 14 day = 2 week 
 
// do something for less than 2 weeks 
 
console.log('Less than 2 weeks will be expired'); 
 
} else { 
 
// also can do something 
 
console.log('more than 2 weeks will be expired.'); 
 
}

Javascript Date Reference

+0

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

1

日付のミリ秒を比較してみてください。 2週間で1000 * 60 * 60 * 24 * 14 = 1209600000ミリ秒があり、現在の日付に1209600000msを加算し、これを期日のミリ秒と比較できることがわかっています。

let dueDate = new Date('07/26/2017'); 

if(Date.now() + 1209600000 > dueDate.getMilliseconds()){ 
    //do stuff 
} 
+0

'getMilliseconds()'は、現在の時刻のミリ秒数を返します。 'getTime()'が必要です。しかし、これはまた、提案された複製からの回答でもあります。したがって、あなたはそれに答えることであなたに何の恩恵も与えていません。 –

関連する問題