Vue使用dayjs获取本年度、本季度、上季度、下季度、本月、上个月、下个月本周、上周、下周、最近N天时间

安装
npm install dayjs --save
1
在main.js中引入dayjs
import dayjs from 'dayjs'
let quarterOfYear = require('dayjs/plugin/quarterOfYear')//day.js插件
dayjs.extend(quarterOfYear)
Vue.prototype.dayjs = dayjs//挂载
1
2
3
4


在util中封装方法
//引入日期处理文件
import dayjs from 'dayjs'
let quarterOfYear = require('dayjs/plugin/quarterOfYear')//day.js季度插件
dayjs.extend(quarterOfYear)

export function getTimeRange(type){
  let start = ''
  let end = ''
  switch(type){
    case '本年':
      start = dayjs().startOf('year').format('YYYY-MM-DD');
      end = dayjs().endOf('year').format('YYYY-MM-DD');
      break;
    case '上年':
      start = dayjs().add(-1, 'year').startOf('year').format('YYYY-MM-DD');
      end = dayjs().add(-1, 'year').endOf('year').format('YYYY-MM-DD');
      break;
    case '下年':
      start = dayjs().add(1, 'year').startOf('year').format('YYYY-MM-DD');
      end = dayjs().add(1, 'year').endOf('year').format('YYYY-MM-DD');
      break;
    case '上半年':
      start = dayjs().startOf('year').format('YYYY-MM-DD');
      end = dayjs().endOf('year').subtract(6, 'month').format('YYYY-MM-DD');
      break;
    case '下半年':
      start = dayjs().startOf('year').add(6, 'month').format('YYYY-MM-DD');
      end = dayjs().endOf('year').format('YYYY-MM-DD');
      break;
    case '本季度':
      start = dayjs().startOf('quarter').format('YYYY-MM-DD');
      end = dayjs().endOf('quarter').format('YYYY-MM-DD');
      break;
    case '上季度':
      start = dayjs().add(-1, 'quarter').startOf('quarter').format('YYYY-MM-DD');
      end = dayjs().add(-1, 'quarter').endOf('quarter').format('YYYY-MM-DD');
      break;
    case '下季度':
      start = dayjs().add(1, 'quarter').startOf('quarter').format('YYYY-MM-DD');
      end = dayjs().add(1, 'quarter').endOf('quarter').format('YYYY-MM-DD');
      break;
    case '本月':
      start = dayjs().startOf('month').format('YYYY-MM-DD');
      end = dayjs().endOf('month').format('YYYY-MM-DD');
      break;
    case '上月':
      start = dayjs().add(-1, 'month').startOf('month').format('YYYY-MM-DD');
      end = dayjs().add(-1, 'month').endOf('month').format('YYYY-MM-DD');
      break;
    case '下月':
      start = dayjs().add(1, 'month').startOf('month').format('YYYY-MM-DD');
      end = dayjs().add(1, 'month').endOf('month').format('YYYY-MM-DD');
      break;
    case '本周':
      start = dayjs().startOf('week').add(1, 'day').format('YYYY-MM-DD');
      end = dayjs().endOf('week').add(1, 'day').format('YYYY-MM-DD');
      break;
    case '上周':
      start = dayjs().add(-1, 'week').startOf('week').add(1, 'day').format('YYYY-MM-DD');
      end = dayjs().add(-1, 'week').endOf('week').add(1, 'day').format('YYYY-MM-DD');
      break;
    case '下周':
      start = dayjs().add(1, 'week').startOf('week').add(1, 'day').format('YYYY-MM-DD');
      end = dayjs().add(1, 'week').endOf('week').add(1, 'day').format('YYYY-MM-DD');
      break;
    case '今天':
      start = dayjs().format('YYYY-MM-DD');
      end = dayjs().format('YYYY-MM-DD');
      break;
    case '昨天':
      start = dayjs().add(-1, 'day').format('YYYY-MM-DD');
      end = dayjs().add(-1, 'day').format('YYYY-MM-DD');
      break;
    case '明天':
      start = dayjs().add(1, 'day').format('YYYY-MM-DD');
      end = dayjs().add(1, 'day').format('YYYY-MM-DD');
      break;
    case '过去7天':
      start = dayjs().add(-7, 'day').format('YYYY-MM-DD');
      end = dayjs().format('YYYY-MM-DD');
      break;
    case '过去30天':
      start = dayjs().add(-30, 'day').format('YYYY-MM-DD');
      end = dayjs().format('YYYY-MM-DD');
      break;
    case '未来7天':
      start = dayjs().format('YYYY-MM-DD');
      end = dayjs().add(7, 'day').format('YYYY-MM-DD');
      break;
    case '未来30天':
      start = dayjs().format('YYYY-MM-DD');
      end = dayjs().add(30, 'day').format('YYYY-MM-DD');
      break;
    default:
  }
  return [start,end];
}

再将上面的方法getTimeRange挂载到main.js
import { getTimeRange} from "@/utils/timeUtil";
// 全局方法挂载
Vue.prototype.getTimeRange= getTimeRange
1
2
3
这样在所有页面就可以使用this.getTimeRange()方法了
 <el-button-group >
          <el-button  size="mini" @click="resetQueryData('全部')">全部</el-button>
          <el-button type="info" size="mini" @click="resetQueryData('上年')">上年</el-button>
          <el-button type="info" size="mini" @click="resetQueryData('上季度')">上季度</el-button>
          <el-button type="info" size="mini" @click="resetQueryData('上月')">上月</el-button>
          <el-button type="info" size="mini" @click="resetQueryData('上周')">上周</el-button>
          <el-button type="primary" size="mini" @click="resetQueryData('本周')">本周</el-button>
          <el-button type="success" size="mini" @click="resetQueryData('本月')">本月</el-button>
          <el-button type="warning" size="mini" @click="resetQueryData('本季度')">本季度</el-button>
          <el-button type="danger" size="mini" @click="resetQueryData('本年')">本年</el-button>
</el-button-group>


methods: {
//这里的this.queryParams.startDate和this.queryParams.endDate是自己定义要查询的参数
 resetQueryData(type){
      if (type == '全部'){
        this.queryParams.startDate= undefined;
        this.queryParams.endDate= undefined;
      }else {
        var array = this.getTimeRange(type);
        console.log(type,array)
        this.queryParams.startDate= array[0];
        this.queryParams.endDate= array[1];
      }
    },
}
1

原文链接:https://blog.csdn.net/wgh0315/article/details/132165332

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值