项目常用方法:获取上月,本月,上周,本周,昨天,今天的开始时间和结束时间

这些方法都没有提取和封装,每一个都是完整的逻辑+注释,确保即使是新人也能看懂。

// 快捷时间方法 获取: 上月, 本月, 上周, 本周, 昨天, 今天 的开始时间和结束时间
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]
        }
    }
}

 

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