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. 日付の範囲を取得するためのperlサブルーチン
- 2. LINQクエリで2つの日付間の日付範囲が一致する
- 3. javaの2つの日付間の日数を取得する方法は?
- 4. 特定の日付または日付範囲でSVNリビジョン番号を取得する方法
- 5. 日付範囲パーティションテーブルの時間がなくなりました
- 6. チェック2つの日付の範囲はRailsの
- 7. 2つの日付間の差異を取得します。
- 8. 日付範囲または最初のXエントリによるMysqldump?
- 9. 日付範囲の間の特定の月の日付を見つける
- 10. Jquery UIの日付ピッカーの予約日付(日付範囲)
- 11. 日付を含む、Oracleの2つの日付間の日数を取得します。
- 12. 範囲の曜日を取得する
- 13. 停止タイミングを除いた日付範囲を取得
- 14. jquery Datepickerの日付範囲の確認
- 15. jQuery、UIカレンダー、2つのdatepickers日付範囲の2番目の日付の自動設定
- 16. どのように日付範囲のFacebookの共有数を取得する
- 17. Instagram apiは2つの日付の間にフィードを取得します
- 18. MySQLの日付の範囲:同じ日付の間にocurrences
- 19. C#の日付範囲の間の休日の数を計算する
- 20. MySQLクエリの日付範囲を取得する
- 21. ソルバーの日付範囲を取得する
- 22. C#日付と時間の範囲を作成するには?
- 23. Telerik RadSchedulerの現在のビューの日付範囲を取得
- 24. jQueryカレンダーのカスタム日付範囲
- 25. 2つの日付の間でファイルを取得するKornShellスクリプト
- 26. codeigniter:2つの日付の間にデータを取得する
- 27. 2つの日付の間に月を取得するC#
- 28. 2つの日付間の週を取得する方法
- 29. 2つの日付間のカレンダーイベントを取得する
- 30. DATE行の日付範囲の日付
1週間はどういう意味ですか?毎日7日、または月曜日から日曜日までのみ? –
@Gothdo月曜日から日曜日までに何人か。私は何週に何週間かを意味します。 – ler
Googleで検索:http://forums.asp.net/t/1466131.aspx?Calculate+no+of+week+between+2+date+using+javascript –