1、JS获取当前日期的前7天的日期

const dateList = [...Array(7).keys()].map(days => {
    let t = new Date(Date.now() - 86400000 * days);
    let str = `${t.getFullYear()}${t.getMonth() + 1}${t.getDate()}日`;
    console.log('aa', str );    return str;
console.log(dateList);

2、JS获取截止当天以前的近一个月日期

mounted () {   
 // 获取今天之前的一个月日期  
  const dateListList = [...Array(30).keys()].map((days) => {  
    var lastMonthToday = new Date(Date.now() - 86400000 * days)  
    var lastMonthYear = lastMonthToday.getFullYear();//年   
  //getMonth()的返回值是 0(一月)到 11(十二月),返回的是索引值而且是从0开始的,所以要加1!   
   var lastMonth = (lastMonthToday.getMonth() + 1)<10?"0"+(lastMonthToday.getMonth() + 1):lastMonthToday.getMonth() + 1  //月 
  //防止日期小于10的时候传的格式有误,所以判断是否小于10,小于10就前面加0,否则正常取值  
    var lastMonthDay = lastMonthToday.getDate() < 10  ? "0" + lastMonthToday.getDate() : lastMonthToday.getDate(); //日   
   //年月日拼接    
  var lastMonthKsrq = lastMonthYear + "-" + lastMonth + "-" + lastMonthDay;   
   console.log('每一天',lastMonthKsrq)    
  return lastMonthKsrq;  

3、JS判断开始时间不能大于当天日期,结束时间大于开始时间并且不能大于当天日期

1、html中代码如下:

 <el-form-item label="选择日期"> 
      <el-date-picker v-model="formInline.startTime" type="date" 
      placeholder="开始日期" :picker-options="pickerStartTime">
</el-date-picker>      
     <el-date-picker v-model="formInline.endTime" type="date"
     placeholder="结束日期" :picker-options="pickerEndTime">
</el-date-picker>      
     </el-form-item>

2、data里定义:

data(){
let self = this
return { 
pickerStartTime: {      
  disabledDate(time) {      
      //如果结束时间不为空,开始时间小于等于结束时间并且不能大于当天日期    
      if (self.formInline.endTime) {        
    return (        
      time.getTime() > Date.now() - 8.64e6 ||   
  time.getTime() > new Date(self.formInline.endTime).getTime()   
     } else {       
     //开始时间不选时,结束时间最大值小于等于当天      
      return time.getTime() > Date.now();        
   pickerEndTime: {    
    //结束时间只能选择大于等于开始时间并且不能大于当天日期     
   disabledDate(time) {    
      return (       
        time.getTime() > Date.now() - 8.64e6 ||    
        //8.64e7=1000*60*60*24一天          
        time.getTime() < new Date(self.formInline.startTime)   

4、JS判断开始时间不能大于当天日期,结束时间大于开始时间并且不能大于当天日期并且区域在一个月内

   <el-form-item label="时间区间" class="date_qujian">  
        <el-date-picker  
          v-model="formInline.dateTime"
            @change="timeOptionsTime"
            style="width: 330px" 
           type="daterange"
            size="mini" 
           range-separator="-" 
           value-format="yyyy-MM-dd" 
           start-placeholder="开始日期"
            end-placeholder="结束日期" 
           :picker-options="pickerOptions" 
         ></el-date-picker>  
      </el-form-item>

data的return里

 pickerOptions: {  
      // 设置不能选择的日期 
       onPick: ({ maxDate, minDate }) => { 
         this.choiceDate0 = minDate.getTime();
          if (maxDate) { 
           this.choiceDate0 = ''; 
      disabledDate:  
        (time) => { 
           let choiceDateTime = new Date(this.choiceDate0).getTime();
            const minTime = new Date(choiceDateTime).setMonth(new Date(choiceDateTime).getMonth() - 1); 
           const maxTime = new Date(choiceDateTime).setMonth(new Date(choiceDateTime).getMonth() + 1);
            const min = minTime;            const newDate = new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1;
            const max = newDate < maxTime ? newDate : maxTime;
            //如果已经选中一个日期 则 返回 该日期前后一个月时间可选
            if (this.choiceDate0) { 
             return time.getTime() < min || time.getTime() > max;
          //若一个日期也没选中 则 返回 当前日期以前日期可选 
           return time.getTime() > newDate; 
复制代码
  • 私信