2016-12-12 17 views
-1

非常に簡単な質問です。Javascriptで週末(日曜日、土曜日)を除く2つの日付の違いを取得するには?

SQLデータベースにdatetimeが格納されています。私は次のようなものを日付時刻の時間差を計算するために、この日付を使用しています:

var date1 = new Date(request[0].RequestDate.toString()); //coming from my db 
var date2 = new Date(); // current datetime 
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); // calc diff 
var rod= timeDiff/(1000 * 3600 * 24); 
rod= rod.toFixed(2); // result that I want 

しかし、これは私の土曜と日曜を含め、これらの2つの日付の差を与えるだろう...どのように私は私のJSコードを変更することができます土と太陽を排除する。

PSメモ:私が扱っているデータベースの日付は、たとえば、Mon Dec 12 2016 10:23:50 GMT-0500 (Eastern Standard Time)の形式で、私のJSコードでわかるように、 "time"にdiffが必要です。

ありがとうございます!

答えて

-1

ループは、合計日数を通過、その日の日付オブジェクトを作成し、それを行う必要があり、新たな日トータルカウントをインクリメントするための単純な:

var days = 0; 
for (d = 0; d <= rod; d++) { 
    var thisDate = new Date(
     date1.getYear(), 
     date1.getMonth(), 
     (date1.getDate()+d), 
     date1.getHours(), 
     date1.getMinutes(), 
     date1.getSeconds() 
    ); 

    // 0: Sunday, 6: Saturday 
    if (thisDate.getDay() > 0 && 
     thisDate.getDay() < 6) { 
     days++; 
    } 
} 
days.toFixed(2); 

は今の時間にそれと日付の差分を取得するには、新しい日付を使用して新しい日付を作成する必要があります:

var startDate = new Date(date1.toDateString()); 
date1.setDate(date1.getDate() + days); 
var endDate = new Date(date1.toDateString()); 
+0

これは、すでに重複している質問に対してすばらしい答えがあります。 – 4castle

+0

他のページの回答とこの回答の唯一の違いは、新しい日付を作成するのではなく、既存の日付オブジェクトにsetDateを使用することです。また、他の答えは長くなります。これは最も単純な形式ですが、setDateを使用するとそれは小さくなります。 –

+0

他の回答が同じであると思われる場合は、重複としてフラグを立ててください。 – 4castle

関連する問題