Moment.js根据特定日期(也是过去几年)获取周数

Art*_*acs 41 javascript week-number momentjs

我怎么能从JS的那一刻开始从过去的某个日期开始的星期编号只从一个选定日期的格式化对象开始?

Gio*_*ani 76

  $(document).ready(function(){
    var weeknumber = moment("12-25-1995", "MM-DD-YYYY").week();
    console.log(weeknumber);
  });
Run Code Online (Sandbox Code Playgroud)

根据momentjs文档:

由于不同的区域设置定义了不同年份的周数,因此Moment.js添加了一周#周来获取/设置一年中的本地化周.

一年中的一周取决于哪一天是一周的第一天(星期日,星期一等),以及哪一周是一年中的第一周.

例如,在美国,星期日是一周的第一天.1月1日的一周是一年中的第一周.

因此,如果您在获取正确的周数时遇到问题,请使用.isoWeek()

$(document).ready(function(){
  var weeknumber = moment("11-26-2016", "MMDDYYYY").isoWeek();
  alert(weeknumber);
});
Run Code Online (Sandbox Code Playgroud)

  • 小心这一刻("12/31/2015","MM/DD/YYYY").周()将返回1作为一周.你可能也想看看moment().isoWeek() (10认同)
  • 请注意,如果您使用以上_(`moment()。format('w')`,moment()。week(),moment()。isoWeek()等提供的任何解决方案, 。)_您应该知道,他们会给您确切的星期数。因此,例如,日期`moment('2018-12-31')。format('w')`将返回`1`,因为它是2019年第一周的星期一。是2018年的最后一天,但是不在2018年的一周内。 (2认同)

l2a*_*lba 11

你也可以使用 format()

例子:

moment().format('w') // as .week() like '1'
moment().format('W') // as .isoWeek() like '1'
moment().format('ww') // as .week() (2 digits) like '01'
moment().format('WW') // as .isoWeek() (2 digits) like '01'
Run Code Online (Sandbox Code Playgroud)

ISO周日期:https://en.wikipedia.org/wiki/ISO_week_date

更多信息: https ://momentjs.com/docs/#week-year-week-and-weekday-tokens

  • 并且“GGGG”或“GG”给出了与该周相对应的 iso 年份 (2认同)