<view class="iconfont-menu-position"> <span class="iconfont-menu-icon">{{timeIcon}}</span><span
class="choose-font">时间</span></view>
<view class="complain">
<view class="type">
<view class="type-view">
<view class="type-li" v-for="(item, index) in date" :key="index"
@click="setStatus(item,index,date)">
<view class="iconfont-menu-time"
:class="{ bgcolor:item.status?0:1,fontcolor :item.status?0:1 }">
{{ item.name }}
</view>
</view>
</view>
</view>
</view>
<!-- 开始日期 -->
<view class=" displayDate-start">
<view v-if="startTime">{{startTime}}</view>
</view>
<view class="upay-incomeTotal-center">
</view>
<!-- 结束日期 -->
<view class="displayDate-end">
<view v-if="endTime">{{endTime}}</view>
</view>
这是我的方法逻辑:
setStatus(item, index, date) {
// 默认查询上周日期
if (date == 1) {
var date = this.query('lastWeek');
} else {
if (item.status == true) {
this.$set(item, "status", false)
var dateName = item.name;
for (var i = 0; i < date.length; i++) {
if (date[i].name != dateName) {
this.$set(date[i], "status", true)
}
}
// 显示日期
if (dateName == '本周') {
var date = this.query('weeks');
}
if (dateName == '上周') {
var date = this.query('lastWeek');
}
if (dateName == '本月') {
var date = this.query('month');
}
if (dateName == '三月') {
var date = this.query('threeMonths');
}
}
}
},
下面是获取日期的方法
//获取时间、
//时间解析;
Time: function(now) {
let year = new Date(now).getFullYear();
let month = new Date(now).getMonth() + 1;
let date = new Date(now).getDate();
if (month < 10) month = "0" + month;
if (date < 10) date = "0" + date;
return year + "-" + month + "-" + date
},
//本周第一天;
showWeekFirstDay: function() {
let Nowdate = new Date();
let WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000);
let M = Number(WeekFirstDay.getMonth()) + 1;
if (M < 10) {
M = "0" + M;
}
let D = WeekFirstDay.getDate();
if (D < 10) {
D = "0" + D;
}
return WeekFirstDay.getFullYear() + "-" + M + "-" + D;
},
//本周最后一天
showWeekLastDay: function() {
let Nowdate = new Date();
let WeekFirstDay = new Date(Nowdate - (Nowdate.getDay() - 1) * 86400000);
let WeekLastDay = new Date((WeekFirstDay / 1000 + 6 * 86400) * 1000);
let M = Number(WeekLastDay.getMonth()) + 1;
if (M < 10) {
M = "0" + M;
}
let D = WeekLastDay.getDate();
if (D < 10) {
D = "0" + D;
}
return WeekLastDay.getFullYear() + "-" + M + "-" + D;
},
//获得某月的天数:
getMonthDays: function(myMonth) {
let monthStartDate = new Date(new Date().getFullYear(), myMonth, 1);
let monthEndDate = new Date(new Date().getFullYear(), myMonth + 1, 1);
let days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
},
//点击事件
query: function(way) {
switch (way) {
case 'weeks':
this.startTime = this.showWeekFirstDay();
console.log(this.startTime)
this.endTime = this.showWeekLastDay();
break;
case 'lastWeek':
this.startTime = this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), new Date()
.getDate() - new Date().getDay() - 6));
this.endTime = this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), new Date()
.getDate() + (6 - new Date().getDay() - 6)));
break;
case 'month':
this.startTime = this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), 1));
console.log()
var days = this.getMonthDays(new Date().getMonth());
console.log(days)
this.endTime = this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), days));
break;
case 'threeMonths':
this.startTime = this.Time(new Date(new Date().getFullYear(), new Date().getMonth() - 2, 1));
var days = this.getMonthDays(new Date().getMonth());
this.endTime = this.Time(new Date(new Date().getFullYear(), new Date().getMonth(), days));
break;
}
}