2012-05-03 531 views
0

jquery/javascriptを使用して週と年の番号を指定すると、暦日を計算する簡単な方法を探しています。jquery/javascript-今週の週番号と年番号を計算する

例:週18、2012年には、あなたがこれまで持っているものを見なければ日曜日に

2012-04-29 
2012-04-30 
2012-05-01 
2012-05-02 
2012-05-03 
2012-05-04 
2012-05-05 

おかげ

+0

やったとき水曜日の1月1日滝、/ WEEない場合k#1スタート? – Marc

+0

JSでは、 'theDate.getDay();'を使って曜日を取得できます。そこから計算することができます。 – Marc

+0

年の最初の週を指定する必要があります。最初の週、どちらの日がyerarに含まれていますか?月曜日を含む最初の週?木曜日を含む最初の週? – JotaBe

答えて

3

あなたはthis questionからコードをリメイクした場合、あなたはこのようなものでしょう:

function getDays(year, week) { 
    var j10 = new Date(year, 0, 10, 12, 0, 0), 
     j4 = new Date(year, 0, 4, 12, 0, 0), 
     mon = j4.getTime() - j10.getDay() * 86400000, 
     result = []; 

    for (var i = -1; i < 6; i++) { 
     result.push(new Date(mon + ((week - 1) * 7 + i) * 86400000)); 
    } 

    return result; 
} 

DEMO:http://jsfiddle.net/TtmPt/

+0

ヨーロッパスタイルの週番号http://jsfiddle.net/mayooresan/MGvsd/を使用している場合 –

1

を開始のリストにつながる、私はこのデモを読んで推薦し、エフェクトをリバースエンジニアリングすることを考慮して、日付を受け入れる代わりに週番号を受け入れるようにしてください。

ISO Week Numbers in Specific Languages

1

あなたは週に始まる何の日を決定する必要があり - あなたを指定日曜日。 (ISO週は月曜日から始まります)。

  1. 1月1日の曜日を取得します。
  2. に最も近い日曜日を取得してください。
  3. 1月1日が木曜日、金曜日、土曜日、または日曜日の場合、年の最初の週は12月の最後の日曜日から1週間に始まります。そうでなければ、年の最初の週は12月の最後の日曜日に始まります。
  4. 最初の日+(週* 7) - 7に日付を設定して、その週の最初の日を検索します。

    var year = new Date()。getFullYear()、 firstDay = new Date(year、0、1)、 wd = firstDay.getDay();

    firstDay.setDate(1 +( - 1 *(wd%7))));

    IF(WD> 3){ firstDay.setDate(firstDay.getDate()+ 7)。 } var week4 = new Date(firstDay); week4.setDate(week4.getDate()+(4 * 7) - 7);

    alert(week4);

    返される値:(日)

    日2013年1月20日00:00:00 GMT-0500(東部標準時)

0

jqueryの/ javascript-今週与えられた週数に日数を計算年数

var years = $('#yr').val(); 
var weeks = $('#weekNo').val(); 

    var d = new Date(years, 0, 1); 
     var dayNum = d.getDay(); 
     var diff = --weeks * 7; 


     if (!dayNum || dayNum > 4) { 
      diff += 7; 
     } 


     d.setDate(d.getDate() - d.getDay() + ++diff); 
$('#result').val(d); 

[デモ] [1]:https://jsfiddle.net/2bhLw084/