使用按钮触发element 时间事件 --时间戳

本文详细介绍了一种在Vue.js中使用date组件实现快速选择今日、本周、本月、本年的方法,通过定义pickerOptions2配置项,实现了点击按钮即可快速选择对应时间段的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本日 本周 本月 本年  时间按钮   date 组件内添加

pickerOptions2: {
shortcuts: [
{
text: '今日',
onClick(picker) {
picker.$emit('pick', new Date());
}
},{
text: '本周',
onClick(picker) {
let oneDayLong = 24*60*60*1000 ;
let now = new Date();
let mondayTime = now.getTime() - (now.getDay()-1)*oneDayLong;
let sundayTime = now.getTime() + (7-now.getDay())*oneDayLong;
let monday = new Date(mondayTime);
let sunday = new Date(sundayTime);
picker.$emit('pick', [monday,sunday]);
}
}, {
text: '本月',
onClick(picker) {
let oneDayLong = 24*60*60*1000;
let now = new Date();
let year = now.getFullYear();
let monthStartDate = new Date(year, now.getMonth()+1, 1);//当前月1号
let nextMonthStartDate = new Date(year, now.getMonth()+2, 1);//下个月1号
let days = (nextMonthStartDate.getTime() -
monthStartDate.getTime())/oneDayLong;//计算当前月份的天数
let monthEndDate = new Date(year, now.getMonth()+1, days);
picker.$emit('pick', [monthStartDate, monthEndDate]);
}
}, {
text: '本年',
onClick(picker) {
let now=new Date()
let year = now.getFullYear();
let start= new Date(year, 0, 1)
let end= new Date(year, 11, 31)
picker.$emit('pick', [start, end])
}
}]
},
//触发时间选择
radioDataChange(val){
console.log(val)
this.$emit('daterange', new Date());
const now = new Date();
const end = new Date().getTime()-3600*365;
const start = new Date().getTime()-3600*365;
const oneDayLong = 24*60*60*1000
const year = now.getFullYear();
switch(val){
case '今日':
this.value7=[end,start];
break;
case '本周':
let mondayTime = now.getTime() - (now.getDay()-1)*oneDayLong;
let sundayTime = now.getTime() + (7-now.getDay())*oneDayLong;
this.value7=[mondayTime,sundayTime];
break;
case '本月':
console.log(now+","+year);
let monthStartDate = new Date(year, now.getMonth()+1, 1).getTime();//当前月1号
let nextMonthStartDate = new Date(year, now.getMonth()+2, 1);//下个月1号
let days = (nextMonthStartDate.getTime() -monthStartDate)/oneDayLong;//计算当前月份的天数
let monthEndDate = new Date(year, now.getMonth()+1, days).getTime();
this.value7= [monthStartDate, monthEndDate];
break;
case '全年':
let Ystart= new Date(year, 0, 1).getTime();
let Yend= new Date(year, 11, 31).getTime();
this.value7= [Ystart, Yend];
break;

}
},

 

转载于:https://www.cnblogs.com/Quxiya/p/10488468.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值