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