項目常用方法:獲取上月,本月,上週,本週,昨天,今天的開始時間和結束時間

這些方法都沒有提取和封裝,每一個都是完整的邏輯+註釋,確保即使是新人也能看懂。

// 快捷時間方法 獲取: 上月, 本月, 上週, 本週, 昨天, 今天 的開始時間和結束時間
export default {
    methods: {
        // 時間方法: 前面加 0
        changeTime(time) {
            return time < 10 ? '0' + time : time
        },

        // 時間方法: 獲取當天的 開始時間, 結束時間
        getTodayDate() {
            let todayDate = new Date()

            // 獲取當前時間的 年月日
            let year = todayDate.getFullYear()
            let month = todayDate.getMonth() + 1
            let day = todayDate.getDate()
            let YearMonthDay = year + '-' + this.changeTime(month) + '-' + this.changeTime(day)

            // 獲取當天的 開始時間, 結束時間
            let startTime = YearMonthDay + ' 00:00:00'
            let endTime = YearMonthDay + ' 23:59:59'

            return [startTime, endTime]
        },

        // 時間方法: 獲取昨天的 開始時間, 結束時間
        getYesterdayDate() {
            let todayDate = new Date()

            // 獲取昨天的時間, 以及昨天的年月日
            let yesterDay = new Date(todayDate.getTime() - 24 * 60 * 60 * 1000)
            let year = yesterDay.getFullYear()
            let month = yesterDay.getMonth() + 1
            let day = yesterDay.getDate()
            let YearMonthDay = year + '-' + this.changeTime(month) + '-' + this.changeTime(day)

            // 獲取昨天的 開始時間, 結束時間
            let startTime = YearMonthDay + ' 00:00:00'
            let endTime = YearMonthDay + ' 23:59:59'

            return [startTime, endTime]
        },

        // 時間方法: 獲取本週的 開始時間, 結束時間
        getCurrentWeek() {
            let todayDate = new Date()

            // 獲取今天是本週的星期幾
            let week = todayDate.getDay()

            // 一天的毫秒數
            let oneDay = 1000 * 60 * 60 * 24

            // 週一到今天, 應該減去的天數
            let minusDay = week !== 0 ? week - 1 : 6

            // 本週 週一
            let Monday = new Date(todayDate.getTime() - (minusDay * oneDay))

            // 本週 週日
            let Sunday = new Date(Monday.getTime() + (6 * oneDay))

            // 本週 週一 的 年月日
            let MondayYear = Monday.getFullYear()
            let MondayMonth = Monday.getMonth() + 1
            let MondayDay = Monday.getDate()

            // 本週 週日 的 年月日
            let SundayYear = Sunday.getFullYear()
            let SundayMonth = Sunday.getMonth() + 1
            let SundayDay = Sunday.getDate()

            // 獲取本週的 開始時間, 結束時間
            let startTime = MondayYear + '-' + this.changeTime(MondayMonth) + '-' + this.changeTime(MondayDay) + ' 00:00:00'
            let endTime = SundayYear + '-' + this.changeTime(SundayMonth) + '-' + this.changeTime(SundayDay) + ' 23:59:59'

            return [startTime, endTime]
        },

        // 時間方法: 獲取上週的 開始時間, 結束時間
        getLastWeek() {
            let todayDate = new Date()

            // 獲取今天是本週的星期幾
            let week = todayDate.getDay()

            // 一天的毫秒數
            let oneDay = 1000 * 60 * 60 * 24

            // 週一到今天, 應該減去的天數
            let minusDay = week !== 0 ? week - 1 : 6

            // 本週 週一
            let Monday = new Date(todayDate.getTime() - (minusDay * oneDay))

            // 上週最後一天: 即本週開始的前一天
            let lastSunday = new Date(Monday.getTime() - oneDay)

            // 上週的第一天: 即上週一
            let lastMonday = new Date(lastSunday.getTime() - (oneDay * 6))

            // 上週 週一 的 年月日
            let lastMondayYear = lastMonday.getFullYear()
            let lastMondayMonth = lastMonday.getMonth() + 1
            let lastMondayDay = lastMonday.getDate()

            // 上週 週日 的 年月日
            let lastSundayYear = lastSunday.getFullYear()
            let lastSundayMonth = lastSunday.getMonth() + 1
            let lastSundayDay = lastSunday.getDate()

            // 獲取上週的 開始時間, 結束時間
            let startTime = lastMondayYear + '-' + this.changeTime(lastMondayMonth) + '-' + this.changeTime(lastMondayDay) + ' 00:00:00'
            let endTime = lastSundayYear + '-' + this.changeTime(lastSundayMonth) + '-' + this.changeTime(lastSundayDay) + ' 23:59:59'

            return [startTime, endTime]
        },

        // 時間方法: 獲取本月的 開始時間, 結束時間
        getCurrentMonth() {
            let todayDate = new Date()

            // 獲取當前年份
            let currentYear = todayDate.getFullYear()

            // 獲取當前月份: 注意是 0-11
            let currentMonth = todayDate.getMonth()

            // 獲取本月的第一天
            let firstDay = new Date(currentYear, currentMonth, 1)

            // 本月爲12月的時候, 則下個月年份需要加1, 月份需要爲0, 也就是下一年的第一個月
            // 以便於獲取 下個月的第一天
            if (currentMonth === 11) {
                currentYear++
                currentMonth = 0
            } else {
                currentMonth++
            }

            // 下個月的第一天
            let nextMonthFirstDay = new Date(currentYear, currentMonth, 1)

            // 一天的毫秒數
            let oneDay = 1000 * 60 * 60 * 24

            // 獲取本月的最後一天
            let lastDay = new Date(nextMonthFirstDay.getTime() - oneDay)

            // 本月第一天 的 年月日
            let firstDayYear = firstDay.getFullYear()
            let firstDayMonth = firstDay.getMonth() + 1
            let firstDayDay = firstDay.getDate()

            // 本月最後一天 的 年月日
            let lastDayYear = lastDay.getFullYear()
            let lastDayMonth = lastDay.getMonth() + 1
            let lastDayDay = lastDay.getDate()

            // 獲取本月的 開始時間, 結束時間
            let startTime = firstDayYear + '-' + this.changeTime(firstDayMonth) + '-' + this.changeTime(firstDayDay) + ' 00:00:00'
            let endTime = lastDayYear + '-' + this.changeTime(lastDayMonth) + '-' + this.changeTime(lastDayDay) + ' 23:59:59'

            return [startTime, endTime]
        },

        // 時間方法: 獲取上月的 開始時間, 結束時間
        getLastMonth() {
            let todayDate = new Date()

            // 獲取當前年份
            let currentYear = todayDate.getFullYear()

            // 獲取當前月份: 注意是 0-11
            let currentMonth = todayDate.getMonth()

            // 獲取本月的第一天
            let firstDay = new Date(currentYear, currentMonth, 1)

            // 一天的毫秒數
            let oneDay = 1000 * 60 * 60 * 24

            // 獲取上個月的最後一天
            let lastMonthLastDay = new Date(firstDay.getTime() - oneDay)

            // 月份爲0是本年的第一月, 上個月則是去年的12月
            if (currentMonth === 0) {
                currentYear--
                currentMonth = 11
            } else {
                currentMonth--
            }

            // 獲取上個月的第一天
            let lastMonthFirstDay = new Date(currentYear, currentMonth, 1)

            // 上個月第一天 的 年月日
            let firstDayYear = lastMonthFirstDay.getFullYear()
            let firstDayMonth = lastMonthFirstDay.getMonth() + 1
            let firstDayDay = lastMonthFirstDay.getDate()

            // 上個月最後一天 的 年月日
            let lastDayYear = lastMonthLastDay.getFullYear()
            let lastDayMonth = lastMonthLastDay.getMonth() + 1
            let lastDayDay = lastMonthLastDay.getDate()

            // 獲取上個月的 開始時間, 結束時間
            let startTime = firstDayYear + '-' + this.changeTime(firstDayMonth) + '-' + this.changeTime(firstDayDay) + ' 00:00:00'
            let endTime = lastDayYear + '-' + this.changeTime(lastDayMonth) + '-' + this.changeTime(lastDayDay) + ' 23:59:59'

            return [startTime, endTime]
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章