Cómo averiguar el número de semana del mes desde Fecha ...

(Fecha / 7) y techo / piso (Fecha / 7) no funciona para el mes de diciembre de 2019 (o cualquier mes que tenga 1 día es domingo) ...

Mi código:

var day = new Date($("#convDate").val()).getDay();
var week = 0 | new Date($("#convDate").val()).getDate() / 7;

week = Math.ceil(week);

if (week == 1 || week == 3) {
  if (day == 6) {
    alert("Half Day");
  }
}

alert("Submit");
return false;
0
Mahetab 17 dic. 2019 a las 16:53

2 respuestas

Encontré la solución justo ahora, De Obtenga el número de semana del mes de fecha (semanas que comienzan los lunes)

Respondido por Avraham [Muchas gracias ..]

function getWeek(date) {
  let monthStart = new Date(date);
  monthStart.setDate(0);
  let offset = (monthStart.getDay() + 1) % 7 - 1; // -1 is for a week starting on Monday
  return Math.ceil((date.getDate() + offset) / 7);
}
0
Mahetab 17 dic. 2019 a las 14:15
Date.prototype.getMDay = function() {
  return (this.getDay() + 6) %7;
}

Date.prototype.getISOYear = function() {
  var thu = new Date(this.getFullYear(), this.getMonth(), this.getDate()+3-this.getMDay());
  return thu.getFullYear();
}

Date.prototype.getISOWeek = function() {
  var onejan = new Date(this.getISOYear(),0,1);
  var wk = Math.ceil((((this - onejan) / 86400000) + onejan.getMDay()+1)/7);
  if (onejan.getMDay() > 3) wk--;return wk;
}

week = (new Date('Dec 2019')).getISOWeek();  //48
1
jspit 17 dic. 2019 a las 14:13