Buena noches,
Prefiero tener un método de extensión simple:
Date.prototype.startOfWeek = function (pStartOfWeek) {
var mDifference = this.getDay() - pStartOfWeek;
if (mDifference < 0) {
mDifference += 7;
}
return new Date(this.addDays(mDifference * -1));
}
Notarás que esto realmente utiliza otro método de extensión que yo uso:
Date.prototype.addDays = function (pDays) {
var mDate = new Date(this.valueOf());
mDate.setDate(mDate.getDate() + pDays);
return mDate;
};
Ahora, si sus semanas comienzan el domingo, pase un "0" para el parámetro pStartOfWeek, así:
var mThisSunday = new Date().startOfWeek(0);
Del mismo modo, si sus semanas comienzan el lunes, pase un "1" para el parámetro pStartOfWeek:
var mThisMonday = new Date().startOfWeek(1);
Saludos,