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 月的最后一个星期日开始一周。否则,一年的第一周从 12 月的最后一个星期日开始。
  4. 通过将日期设置为第一天 + (weeks * 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= 新日期(第一天);week4.setDate(week4.getDate()+(4*7)- 7);

    警报(第 4 周);

    返回值:(日期)

    2013 年 1 月 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 回答