js根據輸入的日期獲取當年的第幾周


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
}

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM