一年几周

时间:2019-01-21 12:30:38

标签: javascript jquery-plugins

给定特定年份,如何在javascript / JQuery中计算给定年份中的几周?是52还是53?

我查看了很多答案,但还没有一个对我有用- 我需要将一年的第一天计算为第一周(如Outlook日历中所示)。 在我看到的计算中,第一周从一年中的第一个星期日开始。

outlook calendar - 12/2016

1 个答案:

答案 0 :(得分:0)

如果您要查找的是ISO 8601周号,则可以通过检查 12月28日中哪个日期始终是 来确定每年 1月4日这样的一年的最后一周在第一周总是

    Date.prototype.getWeek = function() {
      var date = new Date(this.getTime());
      date.setHours(0, 0, 0, 0);
      // Thursday in current week decides the year.
      date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
      // January 4 is always in week 1.
      var week1 = new Date(date.getFullYear(), 0, 4);
      // Adjust to Thursday in week 1 and count number of weeks from date to week1.
      return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
    }

    
    console.log((new Date(2019, 11, 28)).getWeek());  // 52
    console.log((new Date(2020, 11, 28)).getWeek());  // 53
    console.log((new Date(2021, 11, 28)).getWeek());  // 52