2021-10-13

项目中遇到的一些关于时间的问题

一天的毫秒数

var time  = 1000*60*60*24;   

取消element中dialog遮罩层的事件

:close-on-click-modal="false"

ele时间控件禁止选当前月的前一个月,前两个月moth-1

 pickerOptions: {
        disabledDate(time) {
          var now = new Date();
          var year = now.getFullYear();
          var month = now.getMonth();
          if (month < 10) {
            month = "0" + month;
          }
          if (month == 0) {
            month = 12;
            year = year - 1;
          }
          let a = year + "," + month;
          var startDate = new Date(a);

          return time.getTime() < startDate;
        },
      },

结束日期不能超过开始日期

 disabledDate: (time) => {
      if (this.value1) {
        return time.getTime() < new Date(this.value1).getTime();
          }
        },

禁止选择今天之前或包含今天

time.getTime获取到12月1日的时间戳,小于Date.now()就是之前的被禁止

pickerOptions: {
		disabledDate(time) {
	   //禁止用户选择今天之前的日期,包含今天。
		return time.getTime() <= (Date.now());
	  //禁止用户选择今天之前的日期,不包含今天。
		return time.getTime() < (Date.now()-(24 * 60 * 60 * 1000));
		}
}

不能超过开始日期也不能大于当前日期

 disabledDate: (time) => {
   if (this.value3) {
   let a = time.getTime() < new Date(this.value3).getTime();//限前 限制过去的30天内
 // let b = time.getTime() > Date.now() - 3600 * 1000 * 24 * 60; //限制不能超过今天 限后
          // return a || b;
           return a;
         }
     },

前后默认时间间隔一周

  created() {
    //  默认起始时间
    var time = new Date().getTime() - 7 * 24 * 60 * 60 * 1000;
    var tragetTime = new Date(time);
    var month = tragetTime.getMonth();
    var day = tragetTime.getDate();
    tragetTime =
      tragetTime.getFullYear() +
      "-" +
      (tragetTime.getMonth() > 9
        ? tragetTime.getMonth() + 1
        : "0" + (tragetTime.getMonth() + 1)) +
      "-" +
      (tragetTime.getDate() > 9
        ? tragetTime.getDate()
        : "0" + tragetTime.getDate());
    this.value1 = tragetTime;
  
    var day2 = new Date();
    day2.setTime(day2.getTime());
    var s2 =
      day2.getFullYear() + "-" + (day2.getMonth() + 1) + "-" + day2.getDate();
    this.value2 = s2;
  },

获取上个月的最后一天

var date = new Date();
var day = new Date(date.getFullYear(), date.getMonth(), 0).getDate();
//上个月的年月日
var endDay = 
new Date(new Date().getFullYear(), new Date().getMonth()-1, day);

 var monthFirstDay = new Date(currentYear,currentMonth,1);    //当前月的第一天
  var oneDay=1000*60*60*24;    //一天的毫秒数
  oneMonthFirstDay =  new Date(monthFirstDay-oneDay);        //当前月的第一天减去一天

获取第前三个月的月份

 if(currentMonth < 3){
      currentYear -= 1;    //年份减1
      threeMonth = currentMonth + 12 - 3;    //当前月的前三个月
       } else {
         threeMonth = currentMonth - 3;    //当前月的前三个月
       }

new Date中有三个参数时,第三个参数为0是当前月的最后一天

//三个参数
new Date('2020','2','0')
Sat Feb 29 2020 00:00:00 GMT+0800 (中国标准时间)
new Date('2020','2','1')
Sun Mar 01 2020 00:00:00 GMT+0800 (中国标准时间)
new Date('2020','2','3')
Tue Mar 03 2020 00:00:00 GMT+0800 (中国标准时间)
new Date('2020','2','-1')
Fri Feb 28 2020 00:00:00 GMT+0800 (中国标准时间)
//一个参数
new Date('2020-2-1')
Sat Feb 01 2020 00:00:00 GMT+0800 (中国标准时间)

禁止选择当天以后的时间

disabledDate(time) {
    return time.valueOf() >= new Date()
},
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值