SOURCE

function getMonthWeek(dateParams) {
	let date = dateParams ? new Date(dateParams) : new Date()
	let y = date.getFullYear()
	let m = date.getMonth()
	let day = date.getDate()
	let dayArr = [31,28,31,30,31,30,31,30,30,31,30,31] 
	if ( (y % 4 ===0) && (y % 100 !==0 || y % 400 ===0) ) {
		dayArr[1] = 29
	}
	let monthDays = dayArr[m]
	date.setFullYear(y, m, 1)
	let w1 = date.getDay()
	let sunday = 7
	let weekNum = 1
    let sundayArr = []
    let nextMonthFlag = false
	if (w1 != 1) {
		sunday = 7 - w1 + 1
	}
    for (sunday; sunday <= monthDays; sunday+=7) {
        sundayArr.push(sunday)
    }
	// console.log(sundayArr)
    if (day > sundayArr[sundayArr.length - 1]) {
        nextMonthFlag = true
    } else {
        for(let i = 0; i < sundayArr.length; i++) {
            if (sundayArr[i] > day) {
                weekNum = i + 1
                break
            }
        }
    }
    // 如果当前日期是月底,则划分到下一个月的第一周
	if (nextMonthFlag) {
		return {
			year: m == 11 ? y + 1 : y,
			month: m == 11 ? 1 : m + 2,
			weekNum: 1
		}
	} 
	return {
		year: y,
		month: m + 1,
		weekNum: weekNum
	}
}

let a = getMonthWeek('2020-05-30')
console.log(JSON.stringify(a))
console 命令行工具 X clear

                    
>
console