I have a problem to get first day and last day in Month, Week and work week for JavaScript code.
For example selected date is 04/02/2022 (mm/dd/yyyy). The actual result will come out like below:
- Month (First day is 04/01/2022, last day is 04/30/2022)
- Week (First day is Sunday 03/27/2022 , last day is Saturday 04/02/2022)
- Work Week (First day is Monday 03/28/2022 , last day is Friday 04/01/2022)
This is my sample code:
//Get Month first day and last day. For example if date is 04/02/2022 (mm/dd/yyyy), the last day will show 04/01/2022 and the last day will show 04/30/2022
let selected_date = "Sat Apr 02 2022 00:00:00 GMT+0800 (Malaysia Time)";
let date = selected_date();
let firstDay = selected_date(date.getFullYear(), date.getMonth(), 1);
let lastDay = selected_date(date.getFullYear(), date.getMonth() + 1, 0);
let selectedFirstDateCheck = moment(firstDay).format('MM/DD/YYYY');
let selectedLastDateCheck = moment(lastDay).format('MM/DD/YYYY');
console.log ("First date:" + selectedFirstDateCheck + " Last date:" + selectedLastDateCheck);
//Get Week first day and last day. For example if date is Saturday 04/02/2022 (mm/dd/yyyy), the last day will show Sunday 03/27/2022 and the last day will show Saturday 04/02/2022
let curr = = "Sat Apr 02 2022 00:00:00 GMT+0800 (Malaysia Time)";
let first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
let last = first + 6; // last day is the first day + 6
let firstday = new Date(curr.setDate(first)).toUTCString();
let lastday = new Date(curr.setDate(last)).toUTCString();
console.log ("First date:" + firstday + " Last date:" + lastday);
//Get Work Week first day and last day. For example if date is Saturday 04/02/2022 (mm/dd/yyyy), the last day will show Monday 03/28/2022 and the last day will show Friday 04/01/2022
let selected_date = "Sat Apr 02 2022 00:00:00 GMT+0800 (Malaysia Time)";
let firstday = new Date(selected_date.setDate(selected_date.getDate() - selected_date.getDay())).toUTCString();
let lastday = new Date(selected_date.setDate(selected_date.getDate() - selected_date.getDay() + 7)).toUTCString();
console.log ("First date:" + firstday + " Last date:" + lastday);
My codes result doesn't work to get the actual answer, anyone can guide me on how to solve this problem? Thanks.