function getWeekStartAndEnd(dateStr) {
const date = new Date(dateStr)
const dayOfWeek = date.getDay()
const startOfWeek = new Date(date)
const endOfWeek = new Date(date)
startOfWeek.setDate(date.getDate() - dayOfWeek)
endOfWeek.setDate(date.getDate() - dayOfWeek + 6)
const formatDate = (date) => {
const d = new Date(date)
let month = '' + (d.getMonth() + 1)
let day = '' + d.getDate()
let year = d.getFullYear()
if (month.length < 2) month = '0' + month
if (day.length < 2) day = '0' + day
return [year, month, day].join('-')
}
return {
start: formatDate(startOfWeek),
end: formatDate(endOfWeek),
}
}
const weekDates = getWeekStartAndEnd('2024-04-18')
console.log(`Week starts on: ${weekDates.start} and ends on: ${weekDates.end}`)