需要使用Javascript查找给定日期的日历季度中的星期数

时间:2018-08-07 21:21:23

标签: javascript date

我试图使用给定日期(例如10/2/18)的javascript(如季度1,第1周)在日历季度中找到星期#。输出必须是一个数字,它代表当日所在季度的第几周。例如,如果我有一个日期1/1/18,我想要一个返回值“ 1”-代表第1周。目的是在x的柱形图中比较一个季度的数据和另一个季度的数据。 -轴点是几周。因此,例如,我想比较第一季度的第一周和第二季度的第一周的数据。我正在使用Highcharts.js生成图表。

Example quarterly comparison chart

以下讨论讨论如何返回星期数。我正在尝试更进一步,并在该季度获得第#周(而不是一年中的第#周):

Highstock - display number of week

function QW: (timestamp) {
  var date = new Date(timestamp);
  var firstDay = new Date(date.getFullYear(), 0, 1);
  var day = firstDay.getDay() == 0 ? 7 : firstDay.getDay();
  var days = Math.floor((date.getTime() - firstDay) / 86400000) + day; // day numbers from the first Monday of the year to current date
  var week = Math.ceil(days / 7);
  var quarterweek = 0;
  //trying to get the quarter ranges here (assuming 13 week quarters - not taking into account leap year)...
  //*should* return a number between 1 - 13.
  if (week > 13 && week <= 26) { //q2
    quarterweek = Math.floor(week / 2);
  } else if (week > 26 && week <= 40) { //q3
    quarterweek = Math.floor(week / 3);
  } else if (week > 40 && week <= 52) { //q4
    quarterweek = Math.floor(week / 4);
  } else {
    quarterweek = week;
  }

  return quarterweek;
}

但是,它不起作用,也没有考虑leap年的情况,在这种情况下,季度可能要比13周更长。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

谢谢大家-通过使用Sani Sing Huttunen上面建议的模运算符,我可以得到四分之一星期。使用Momentjs也很幸运-谢谢charlieftl!