2つの日付範囲があります。 [2016-1-1,2016-3-1]および[2016-2-21,2016-10-1]と私は、JavascriptまたはJqueryまたは任意のライブラリを使用して、これら2つの日付範囲の間の週数を取得したいと思います。 たとえば、最初の範囲が[2016-1-1,2016-3-1]で、2番目の範囲が[2016-2-21,2016-10-1]の場合、2つの範囲の間の週数を意味します。その2つの範囲の間には、2016-2-21から2016-3-1までの1週間が週になります。私は共通を意味しますJqueryまたはJavascriptの2つの範囲または日付の間のコミュニケーション数を取得する
0
A
答えて
1
これを行うことで大きな助けになりますライブラリ、moment.jsは、あります。
開始日で範囲をソートします。これにより、重なりを検出しやすくなります。次に、重なりを計算して週に変換します。
var format = 'YYYY-MM-DD';
function intersectDateRanges(dates) {
if(dates.length == 0) return null;
if(dates.length == 1) return dates[0].slice(0);
dates = dates.map(function(v,i,a){
var start = moment(v[0],format).startOf('day');
var end = moment(v[1],format).endOf('day');
return [start,end];
});
dates.sort(function(a,b){
if(a[0].isBefore(b[0])) return -1;
if(a[0].isAfter(b[0])) return 1;
return 0;
});
var range = dates[0].slice(0);
for(var i = 1; i < dates.length; i++) {
if(dates[i][0].isAfter(range[1])) return null;
range[0] = dates[i][0];
if(dates[i][1].isBefore(range[1])) {
range[1] = dates[i][1];
}
}
return range;
}
function rangeToWeeks(range){
if(!range) return NaN;
return moment.duration(range[1] - range[0]).asWeeks();
}
var dates = [
['2016-1-1','2016-3-1'],
['2016-2-21','2016-10-1']
];
var weeksIntersect = rangeToWeeks(intersectDateRanges(dates));
-1
Date
オブジェクトを使用してください。
d = new Date('2016-1-1');
d1 = new Date('2016-3-1');
diffweeks = (d1-d)/(7*24*60*60*1000); //Subtraction returns milliseconds.
+0
このような形式の日付は 'Date'コンストラクタに渡すべきではありません。なぜなら、すべてのブラウザで正しく解析されるとは限らないからです。 –
+0
互換性に関して 'Date.parse()'はどれくらい良いですか? –
関連する問題
- 1. Laravelは私が例えば日付の範囲を取得したいカーボン間隔で日付の範囲
- 2. 2つの日付範囲の結果セットを取得するためのSQL
- 3. Wordpressは日付範囲を使用して日付範囲の間に投稿を取得します
- 4. Javascript/Jquery/Moment.jsは2つの日付の間の日数を計算します
- 5. 指定された日付と日付の範囲を取得します
- 6. 日付の範囲を取得するためのperlサブルーチン
- 7. 日付範囲ピッカー(ブートストラップ用JavaScriptコンポーネント)は、特定の日に間違った日付を選択します
- 8. SQL - 2つのテーブル(特定の日付範囲/時間)を使用して、日付範囲内のレコードを取得します
- 9. 日付範囲外のタスクを取得するか、日付範囲外のタスクを取得する
- 10. LINQクエリで2つの日付間の日付範囲が一致する
- 11. 2つの範囲の間でデータベースからデータを取得しましたか?
- 12. 日付範囲の月末の取得
- 13. jquery ui日付範囲15日間2日
- 14. ElasticSearch 2.4 2つの日付フィールドの差を使った日付範囲のヒストグラム
- 15. 日付範囲のUDFまたは標準IF関数?
- 16. Plot 2つのカスタム日付範囲の間のヒストリカル点チャート
- 17. 2つの日付の間のデータ範囲Laravel
- 18. 日付のリストから時間の範囲を取得
- 19. javaの2つの日付間の日数を取得する方法は?
- 20. 日付範囲と時間範囲を、日付範囲に含まれる各日の時間範囲を含む一連の結果に結合するSQL
- 21. グラフAPI、作成した日付または日付範囲の広告フィルタを取得
- 22. 特定の日付または日付範囲でSVNリビジョン番号を取得する方法
- 23. symfonyの検証2つの数値の間の範囲、または値
- 24. 合計日数に基づく日付範囲の間に行を取得
- 25. 日付範囲の累積数範囲
- 26. 2つの日付間でランダムな日付を取得する
- 27. 日付範囲パーティションテーブルの時間がなくなりました
- 28. Jquery datepicker。 2つの日付ピッカー。範囲を制限する。デフォルトの日付現在の日付
- 29. 1つのクエリで異なる2つの日付範囲のレコードを取得します
- 30. その日付範囲内にログインまたはログアウトした日付範囲内でアクティブなタイプを取得する
1週間はどういう意味ですか?毎日7日、または月曜日から日曜日までのみ? –
@Gothdo月曜日から日曜日までに何人か。私は何週に何週間かを意味します。 – ler
Googleで検索:http://forums.asp.net/t/1466131.aspx?Calculate+no+of+week+between+2+date+using+javascript –