VUE JS 转换 今日 近一月 近一年 为年月日时分秒

795 阅读1分钟

根据项目需求,会将今日、近七天、近一月、近一年等这样的关键字转换为年月日时分秒(2021-12-29 23:59:59)的格式,一个个去转换太费时间且不高级,所以本文封装了一个自动转换的函数,在使用的时候,只需要调用这个函数,并传入数字参数,就会自动进行转换,废话不多说,请听下面分解!

1. 项目需求图展示:

image.png

  1. DOM
<el-button
    :key="item.value"
    v-for="item in dateTimeList"
    @click="changeDateType(item.value)"
    :class="['date-type-btn', {'active-btn': dateType === item.value}]">
    {{item.label}}
</el-button>
2. data定义
export default {
    data() {
        return {
            endTimeData: ''startTimeData: '',
            dateTimeList: [
                { value: 'TODAY', label: '今日' },
                { value: 'WEEK', label: '近七天' },
                { value: 'MONTH', label: '近一月' }
            ]
        }
    }
}
3. 日期转换函数封装
methods: {
    getHandelData(num) {
            // 开始时间
            this.endTimeData = new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate() + ' ' + '23:59:59'
            var date2 = new Date(new Date())
            // num 为当前传入入参,-为之前  +为之后 0为当日
            date2.setDate(new Date().getDate() - num)
            // 结束时间
            this.startTimeData = date2.getFullYear() + '-' + (date2.getMonth() + 1) + '-' + date2.getDate() + ' ' + '00:00:00'
        return this.startTimeData
    }
}
4. 函数调用
    methods: {
        changeDateType(type) {
            switch (type) {
                case 'TODAY':
                    this.getHandelData(0)
                    break
                case 'WEEK':
                    this.getHandelData(6)
                    break
                case 'MONTH':
                    this.getHandelData(29)
                    break
            }
            console.log(type)
            console.log('开始时间:' + this.startTimeData)
            console.log('结束时间:' + this.endTimeData)
        }
    }
5. 效果展示

image.png

是不是瞬间感觉高大上拉!

END...