web開發中,我們經常遇到客戶要顯示第幾周的等等麻煩的計算,那么輸入當前日期如何快速查處是第幾周呢?
let date = new Date('2021-02-28') getWeekInYear(date) function getWeekInYear(date) { console.log(date) //判斷該星期是否跨年,如果跨年就是第一周 let weekStartDate = getWeekStartByDate(date) //一周開始時間 console.log(weekStartDate,'weekStartDate') let endDate = getDateFromDay(weekStartDate, 6) //一周結束時間 console.log(endDate,'endDate') if (weekStartDate.getFullYear() != endDate.getFullYear()) { console.log(endDate.getFullYear() + '年第1周') let num = 1 return num } let d1 = new Date(date) let d2 = new Date(date) d2.setMonth(0) d2.setDate(1) d2 = getWeekStartByDate(d2) console.log(d2,'d2') let rq = d1 - d2 let days = Math.ceil(rq / (24 * 60 * 60 * 1000)) + 1 let num = Math.ceil(days / 7) console.log(endDate.getFullYear() + '年第' + num + '周') return num } function getWeekStartByDate(date) { let day = date.getDay() return getDateFromDay(date, -day) } function getDateFromDay(dayDate, day) { let date = new Date() date.setTime(dayDate.getTime() + day * 24 * 60 * 60 * 1000) return date }