Основываясь на ответе RobG, я закончил с этим, чтобы получить неделю, которая начнется в полночь понедельника и закончится в воскресенье 23: 59: 59.999.
var weekMap = [6, 0, 1, 2, 3, 4, 5];
function startAndEndOfWeek(date) {
var now = new Date(date);
now.setHours(0, 0, 0, 0);
var monday = new Date(now);
monday.setDate(monday.getDate() - weekMap[monday.getDay()]);
var sunday = new Date(now);
sunday.setDate(sunday.getDate() - weekMap[sunday.getDay()] + 6);
sunday.setHours(23, 59, 59, 999);
return [monday, sunday];
}