我试图使用给定日期(例如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周更长。任何帮助表示赞赏!
答案 0 :(得分:0)
谢谢大家-通过使用Sani Sing Huttunen上面建议的模运算符,我可以得到四分之一星期。使用Momentjs也很幸运-谢谢charlieftl!