前端vue实现获取七天时间和星期几功能
- 功能展示
- 代码
<div v-for="(item,index) in same_week" :class="[same_day==item.date? 'activ' :'','dis']" @click="select(item)" :key='index'>
<span>{{item.name}}</span>
<span>{{item.week}}</span>
</div>
data数据
week:[],
same_week:[],//保存当前最新的时间
same_day:'',//当天的时间
- 在vue周期执行
created() {
// 默认显示当天前一周的数据
let data=[]
this.start=this.getDay(+7);
this.end=this.getDay();
for(let i=6;i>=0;i--){
data.push(this.getDay(+i))
}
var date=data.reverse()//得出一周的日期进行排序
this.week=date;
var date=this.week;
var pkc=[];/* 用于存储展示的日期数据 */
var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
date.forEach((item,index)=>{//循坏日期
var f=new Date(item);
var week=f.getDay()//计算出星期几
var str1=item.split('/');
var strs=str1[1]+'/'+str1[2];
var weeks=weekday[week]/* 将计算出来的时间带入数字得出中文 */
var time= Math.round(new Date(item) / 1000)//时间戳转换
var s={}//用于存储每个日期对象
s.date=item;
s.name=strs;
s.week=weeks;
s.times=time;
pkc.push(s)
})
this.same_week=pkc;
//pkc存储着今天的年月日星期几,时间戳等
this.same_day=pkc[0].date;//今天的数据
},
methods事件
getDay(day){
var today = new Date();
var targetday_milliseconds=today.getTime() + 1000*60*60*24*day;
today.setTime(targetday_milliseconds); //注意,这行是关键代码
var tYear = today.getFullYear();
var tMonth = today.getMonth();
var tDate = today.getDate();
tMonth = this.doHandleMonth(tMonth + 1);
tDate = this.doHandleMonth(tDate);
return tYear+"/"+tMonth+"/"+tDate;
},
doHandleMonth(month){
var m = month;
if(month.toString().length == 1){
m =month;
}
return m;
},
也参考大神们的方法进行改进更合适项目