0

jquery/javascript を使用して、週と年の番号が与えられたときに暦日を計算する簡単な方法を探しています。

例: 2012 年第 18 週は、日曜日から始まるリストになります。

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

ありがとう

4

3 に答える 3

3

この質問からコードを作り直すと、次のようになります。

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;
}

デモ: http://jsfiddle.net/TtmPt/

于 2012-05-03T14:46:45.227 に答える
2

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

  1. Jan 1 の曜日を取得します。
  2. 最も近い日曜日の日付を取得します。
  3. 1 月 1 日が木曜、金曜、土曜、または日曜の場合、年の最初の週は 12 月の最後の日曜の 1 週間前から始まります。それ以外の場合、年の最初の週は 12 月の最後の日曜日から始まります。
  4. 日付を最初の日 + (週 * 7) - 7に設定して、年の任意の週の最初の日を見つけます。

    var year= new Date().getFullYear(), firstDay= new Date(年, 0, 1), wd= firstDay.getDay();

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

    if(wd>3){ firstDay.setDate(firstDay.getDate()+ 7); } var week4= 新しい日付 (firstDay); week4.setDate(week4.getDate()+(4*7)- 7);

    アラート (第 4 週);

    戻り値:(日付)

    2013/01/20 日 00:00:00 GMT-0500(東部標準時)

于 2012-05-03T15:23:15.647 に答える
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/

于 2015-02-25T12:10:04.093 に答える