dayjs函数简单封装

写在前面:

2018-10-16 17:51:39
非vue也是用dayjs()时使用方法

<script src="https://unpkg.com/dayjs"></script>

由于vue的时间戳获取的是当前时间的,而筛选条件(非el-input)开始时间一般是需要加上当前条件加上00:00:00,结束时间也需要加上23:59:59;因此结合dayjs简单封装下目标函数
Update 2018-10-10 18:20:44
增加dateNum小于0的设置

    // 设置时间戳格式V2.0
    // 适用范围本日,最近一月,最近三月,最近半年,最近一年
    // 调用示例:this.getTimestampType(6,'month','start','before')距现在半年之前的时间戳
    getTimestampType(datenum, dateType, handleType,add){
      // @dateNum     Number 天数或月数或年数
      // @dateType    String ['year','month','day']
      // @handleType  String ['start','end'],start 00:00:00;end 23:59:59
      // @add         String ['before','after'],before:往前,after:往后

      // 字段拦截
      let dateTypeArr =['year','month','day']
      let dateTypeStt = dateTypeArr.includes(dateType)
      if(!dateTypeStt){console.error('dateType: Type is error');return;}
      let handleTypeArr =['start','end']
      let handleTypeArrStt = handleTypeArr.includes(handleType)
      if(!handleTypeArrStt){console.error('handleType: Type is error');return;}
      let addArr =['before','after']
      let addArrStt = addArr.includes(add)
      if(!addArrStt){console.error('add: Type is error');return;}
      let dateNum = parseInt(datenum);
      if(dateNum<0){
        // 如果dateNum小于0,则往前的变为往后,反之亦然
        if(add == 'after'){add = 'before'}
        if(add == 'before'){add = 'after'}
      }

      if(dateNum==0){
          // 如果datenum为0,就是当前条件下的开始或结束(当年第一天或当月第一天或当前天)
          if(handleType === 'start'){
            return dayjs().startOf(dateType).valueOf()
          }else if(handleType == 'end'){
            return dayjs().endOf(dateType).valueOf()
          }
        }else{
          if(add === 'after'){
            // 计算往后的
            // 大于0时,返回的是符合条件的值
            if(handleType === 'start'){
              return dayjs().add(Math.abs(dateNum),dateType).startOf('date').valueOf()
            }else if(handleType == 'end'){
              return dayjs().add(Math.abs(dateNum),dateType).endOf('date').valueOf()
            }
          }else if(add === 'before'){
            // 计算往前的
            if(handleType === 'start'){
              return dayjs().subtract(Math.abs(dateNum),dateType).startOf('date').valueOf()
            }else if(handleType == 'end'){
              return dayjs().subtract(Math.abs(dateNum),dateType).endOf('date').valueOf()
            }
          }
        }
    },
    // 设置时间格式V1.0
    getTimestampType(datenum, dateType, handleType,add){
      // @dateNum     Number 天数或月数或年数 取值大于0,且为整数
      // @dateType    String 只能是'year,month,date'
      // @handleType  String 是开始还是结束,开始为00:00:00;结束为23:59:59
      // @add         String before为往前的,after

      // 字段拦截
      let dateTypeArr =['year','month','day']
      let dateTypeStt = dateTypeArr.includes(dateType)
      if(!dateTypeStt){console.error('dateType: Type is error');return;}
      let handleTypeArr =['start','end']
      let handleTypeArrStt = handleTypeArr.includes(handleType)
      if(!handleTypeArrStt){console.error('handleType: Type is error');return;}
      let addArr =['before','after']
      let addArrStt = addArr.includes(add)
      if(!addArrStt){console.error('add: Type is error');return;}
      let dateNum = parseInt(datenum);

      if(dateNum==0){
          // 如果datenum为0,就是当前条件下的开始或结束(当年第一天或当月第一天或当前天)
          if(handleType === 'start'){
            return dayjs().startOf(dateType).valueOf()
          }else if(handleType == 'end'){
            return dayjs().endOf(dateType).valueOf()
          }
        }else if(dateNum>0){
          if(add === 'after'){
            // 计算往后的
            if(dateNum>0){
              // 大于0时,返回的是符合条件的值
              if(handleType === 'start'){
                return dayjs().add(dateNum,dateType).startOf('date').valueOf()
              }else if(handleType == 'end'){
                return dayjs().add(dateNum,dateType).endOf('date').valueOf()
              }
            }
          }else if(add === 'before'){
            // 计算往前的
            if(dateNum>0){
              if(handleType === 'start'){
                return dayjs().subtract(dateNum,dateType).startOf('date').valueOf()
              }else if(handleType == 'end'){
                return dayjs().subtract(dateNum,dateType).endOf('date').valueOf()
              }
            }
          }
        }else{
          console.error('dateNum: Type is error')
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值