So for example, monday is sep 28, a week from monday, sunday is oct 4. How Can I get the first and last day of the week? So far the solutions cover only days belonging in the same month. Please help. Thanks
Asked
Active
Viewed 579 times
3 Answers
1
You can add a week to the starting date's time and construct a new date:
const DAY = 1000 * 60 * 60 * 24; // ms * seconds * minutes * hours
const WEEK = DAY * 7;
const today = new Date('2020-09-29');
const nextWeek = new Date(today.getTime() + WEEK);
console.log(nextWeek.toUTCString());
Then add or subtract from that date to get the first/last day of the week if necessary.
const DAY = 1000 * 60 * 60 * 24;
const WEEK = DAY * 7;
const today = new Date('2020-09-29');
const nextWeek = new Date(today.getTime() + WEEK);
const day = nextWeek.getDay(); // 0 sunday, 6 saturday
const firstDay = new Date(nextWeek.getTime() - (day * DAY));
const lastDay = new Date(nextWeek.getTime() + ((6 - day) * DAY));
console.log(firstDay.toUTCString()); // monday
console.log(lastDay.toUTCString()); // sunday

ray
- 26,557
- 5
- 28
- 27
-
Thanks for taking Interest in my issue. I have resolved it now. Thanks again very much :D – JZnrgn Sep 30 '20 at 19:26
1
You can use date-fns library for that:
const start = startOfWeek(date);
const end = endOfWeek(date);
Check out these threads for more solutions:

maximus
- 716
- 7
- 18
1
You want to look into the Date.getDay()
method. This returns a number from 0-6 for the day of the week (Sunday is 0).
As a function, it could look like this:
function getMonday(date){
const originalDay = date.getDay();
const monday = 1;
const newDate = new Date(date);
const delta = originalDay === 0 ? 1 : originalDay - monday;
newDate.setDate(newDate.getDate() - delta);
return newDate;
}

Dave Cook
- 617
- 1
- 5
- 17
-
Thanks for taking interest in my post. I have resolved the issue now. Thank you very much!:D – JZnrgn Sep 30 '20 at 19:23