Hace un tiempo estuve buscando la manera de conseguir sacar el número de la semana en Javascript, por desgracia la librería estándar no hace esto. Al final adapté el código de la librería fuente de PHP, extendiendo además la capacidad de establecer el primer día de la semana. Espero que lo encuentres útil si lo necesitas.
Some time ago I was looking to find the way of getting the week number in Javascript, sadly the standard library doesn’t handle this. I’ve adapted a function in the source code library of PHP, also adding the posibility of setting the first day of week. Hope you find it useful if you need it.
// selectedDate: Date type object with the time of the week we're requesting
// fdow: First day of week, 0:Sunday, 1:Monday, etc
// returns: object with year and week number properties
function getWeekNumber(selectedDate, fdow)
{
var y = selectedDate.getFullYear(), m = selectedDate.getMonth()+1,
d = selectedDate.getDay() + 1 - fdow;
if(d == 0) d = 7;
var y_leap, prev_y_leap, doy, jan1weekday, weekday;
var iy, iw, i, j, NYD, res;
NYD = new Date(y, 0, 1);
jan1weekday = NYD.getDay() + 1 - fdow;
if(jan1weekday == 0) jan1weekday = 7;
y_leap = new Date(y,1,29).getDate() == 29;
prev_y_leap = new Date(y-1,1,29).getDate() == 29;
doy = (selectedDate - NYD) / 86400000 + 1;
if(y_leap && m > 2) {
doy++;
}
weekday = selectedDate.getDay() + 1 - fdow; // day of week
if(weekday == 0) weekday = 7;
if (jan1weekday == 0) jan1weekday = 7;
// Find if Y M D falls in YearNumber Y-1, WeekNumber 52 or 53
if (doy 4) {
iy = y - 1;
if (jan1weekday == 5 || (jan1weekday == 6 && prev_y_leap)) {
iw = 53;
} else {
iw = 52;
}
} else {
iy = y;
}
// Find if Y M D falls in YearNumber Y+1, WeekNumber 1
if (iy == y) {
i = y_leap ? 366 : 365;
if ((i - (doy - y_leap)) 4) {
iw -= 1;
}
}
res = { week:Math.round(iw), year:iy };
return res;
}



