1. 程式人生 > 其它 >vue獲取本週、上週、本月、三個月或者多個月的計算方式

vue獲取本週、上週、本月、三個月或者多個月的計算方式

html樣例

<template>
<div class="personalReport_time">
  <input type="date" :max="this.endTime" value="" v-model="startTime"/>
  <div></div>
  <input type="date" :min="startTime" :max="this.maxTime" v-model="endTime"/>
 </div>
 <ul class="personalReport_date">
  <li @click="query('today')">今天</li>
  <li @click="query('yesterday')">昨天</li>
  <li @click="query('weeks')">本週</li>
  <li @click="query('lastWeek')">上週</li>
  <li @click="query('month')">本月</li>
  <li @click="query('lastMonth')">上月</li>
 </ul>
 <div>
  <button @click="query" class="but">查詢</button>
 </div>
 </template>

  js點選事件

//獲取時間、
//時間解析;
 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) { let self=this; this.$refs.pag.currentPage=1; this.page=this.$refs.pag.currentPage; switch (way){ case 'today': this.startTime=this.maxTime; this.endTime=this.maxTime; break; case 'yesterday': this.startTime=this.Time(new Date().getTime()-24*60*60*1000); this.endTime=this.Time(new Date().getTime()-24*60*60*1000); break; case 'weeks': this.startTime=this.showWeekFirstDay(); this.endTime=this.maxTime; 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)); this.endTime=this.maxTime; break; case 'lastMonth': this.startTime=this.Time(new Date(new Date().getFullYear(),new Date().getMonth()-1,1)); this.endTime=this.Time(new Date(new Date().getFullYear(),new Date().getMonth()-1,this.getMonthDays(new Date().getMonth()-1))); break; } this.$axios({ method:'post', url:'/inter/user/queryMemberReport', data:{ 'account':this.account, 'baseLotteryId':this.lottersId, 'startTime':this.startTime, 'endTime':this.endTime } }).then(function (data) { // console.log(data) }).catch(function (error) { console.log(error); }) }