js获取昨天,今天,明天,上周,本周,下周,上月,本月,下月,去年,本年,明年,上季度,本季度,下季度,向前推日期等

2023-10-28

配合的elementul的日期选择器使用的

参数是这样的:-1代表'上',0代表'本',1代表'下'

本月:1号到今天。意思就是比如今天是10月27号,那点击这个获取的是10月1号到10月27号得

效果如图:按顺序点了一遍,从左到右

 

 

上代码!

<template>
  <div style="padding: 40px">
    <el-date-picker
      v-model="timerValue"
      value-format="yyyy-MM-dd"
      type="daterange"
      range-separator="至"
      start-placeholder="开始日期"
      end-placeholder="结束日期"
      style="margin-right: 20px"
    >
    </el-date-picker>
    <div style="margin-top: 20px">
      <el-button type="primary" size="mini" @click="submitTimejt(-1)"
        >昨日</el-button
      >
      <el-button type="primary" size="mini" @click="submitTimejt(0)"
        >今日</el-button
      >
      <el-button type="primary" size="mini" @click="submitTimejt(1)"
        >明日</el-button
      >
      <el-button type="primary" size="mini" @click="submitTime(7)"
        >最近一周(向前推)</el-button
      >
      <el-button type="primary" size="mini" @click="submitTime(30)"
        >最近30天(向前推)</el-button
      >
      <el-button type="primary" size="mini" @click="getWeektime(-1)"
        >上周</el-button
      >
      <el-button type="primary" size="mini" @click="getWeektime(0)"
        >本周</el-button
      >
      <el-button type="primary" size="mini" @click="getWeektime(1)"
        >下周</el-button
      >
      <el-button type="primary" size="mini" @click="submitTimeSy(-1)"
        >上月(完整月)</el-button
      >
      <el-button type="primary" size="mini" @click="submitTimeSy(0)"
        >本月(完整月)</el-button
      >
      <el-button type="primary" size="mini" @click="submitTimeSy(1)"
        >下月(完整月)</el-button
      >
      <el-button type="primary" size="mini" @click="submitTimeBy"
        >本月(1号到今天)</el-button
      >
      <el-button type="primary" size="mini" @click="checkQuartertimer(-1)"
        >上季度</el-button
      >
      <el-button type="primary" size="mini" @click="checkQuartertimer(0)"
        >本季度</el-button
      >
      <el-button type="primary" size="mini" @click="checkQuartertimer(1)"
        >下季度</el-button
      >
      <el-button type="primary" size="mini" @click="getYeartimer(-1)"
        >去年</el-button
      >
      <el-button type="primary" size="mini" @click="getYeartimer(0)"
        >本年</el-button
      >
      <el-button type="primary" size="mini" @click="getYeartimer(1)"
        >明年</el-button
      >
      <el-button type="primary" size="mini" @click="checkQuarter"
        >当前是第几季度</el-button
      >
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      //日期
      timerValue: "",
    };
  },
  methods: {
    //查看日期
    log() {
      console.log(this.timerValue, "日期值");
    },

    //【获取n天前时间】: 传参数几就是今天往前推几天的日期。比如传7就是往前七天的日期
    submitTime(n) {
      //开始时间
      var nowDate = new Date();
      let befDate = new Date(nowDate.getTime() - n * 24 * 3600 * 1000);
      let byear = befDate.getFullYear();
      let bmonth = befDate.getMonth() + 1;
      if (bmonth >= 1 && bmonth <= 9) {
        bmonth = "0" + bmonth;
      }
      let bday = befDate.getDate();
      if (bday >= 0 && bday <= 9) {
        bday = "0" + bday;
      }
      //截止时间
      let endDate = new Date(nowDate.getTime() - 1 * 24 * 3600 * 1000);
      let year = endDate.getFullYear();
      let month = endDate.getMonth() + 1;
      if (month >= 1 && month <= 9) {
        month = "0" + month;
      }
      let day = endDate.getDate();
      if (day >= 0 && day <= 9) {
        day = "0" + day;
      }

      //赋值
      let that = this;
      that.timerValue = [
        byear + "-" + bmonth + "-" + bday,
        year + "-" + month + "-" + day,
      ];
      this.log();
    },
    //【查询当前第几季度】
    checkQuarter() {
      console.log(this.getQuarterByMonth());
    },
    //【本月】:当前月1号到今天
    submitTimeBy() {
      let that = this;
      var date = new Date();
      var month = parseInt(date.getMonth() + 1);
      var day = date.getDate();
      if (month < 10) month = "0" + month;
      let yuechu = date.getFullYear() + "-" + month + "-" + "01";
      if (day == 1) {
        that.timerValue = [yuechu, yuechu];
      } else {
        day = day - 1;
        if (day < 10) day = "0" + day;
        let yuedi = date.getFullYear() + "-" + month + "-" + day;
        that.timerValue = [yuechu, yuedi];
      }
      that.log();
    },

    //-------------------------日周月季年,第一个参数:开始时间(s)结束时间(e),第二个参数:上(-1)本(0)下(1)
    //【昨天,今天,明天】
    submitTimejt(num) {
      let value = this.getDate(num);
      this.timerValue = [value, value];
      this.log();
    },
    //【去周,本周,下周】
    getWeektime(num) {
      let s = this.getMonday("s", num);
      let e = this.getMonday("e", num);
      this.timerValue = [s, e];
      this.log();
    },
    //【上月,本月,下月】:1号到月底
    submitTimeSy(num) {
      let s = this.getMonth("s", num);
      let e = this.getMonth("e", num);
      this.timerValue = [s, e];
      this.log();
    },
    //【上季度,本季度,下季度】参数:-1是上季度,0是本季度,1是下季度
    checkQuartertimer(num) {
      if (num == -1) {
        let s = this.getDayTimer(this.getLastQuarterStartDate());
        let e = this.getDayTimer(this.getLastQuarterEndDate());
        this.timerValue = [s, e];
        this.log();
        return;
      } else if (num == 0) {
        let s = this.getDayTimer(this.getQuarterMonth("s"));
        let e = this.getDayTimer(this.getQuarterMonth("e"));
        this.timerValue = [s, e];
        this.log();
        return;
      } else if (num == 1) {
        let s = this.getDayTimer(this.getNextQuarterStartDate());
        let e = this.getDayTimer(this.getNextQuarterEndDate());
        this.timerValue = [s, e];
        this.log();
        return;
      }
    },
    //【去年,本年,明年】
    getYeartimer(num) {
      let s = this.getYear("s", num);
      let e = this.getYear("e", num);
      this.timerValue = [s, e];
      this.log();
    },


    //日获取
    getDate(dates) {
      var dd = new Date();
      var n = dates || 0;
      dd.setDate(dd.getDate() + n);
      var y = dd.getFullYear();
      var m = dd.getMonth() + 1;
      var d = dd.getDate();
      m = m < 10 ? "0" + m : m;
      d = d < 10 ? "0" + d : d;
      var day = y + "-" + m + "-" + d;
      return day;
    },
    //周获取
    getMonday(type, dates) {
      var now = new Date();
      var nowTime = now.getTime();
      var day = now.getDay();
      var longTime = 24 * 60 * 60 * 1000;
      var n = longTime * 7 * (dates || 0);
      if (type == "s") {
        var dd = nowTime - (day - 1) * longTime + n;
      }
      if (type == "e") {
        var dd = nowTime + (7 - day) * longTime + n;
      }
      dd = new Date(dd);
      var y = dd.getFullYear();
      var m = dd.getMonth() + 1;
      var d = dd.getDate();
      m = m < 10 ? "0" + m : m;
      d = d < 10 ? "0" + d : d;
      var day = y + "-" + m + "-" + d;
      return day;
    },
    //月度获取
    getMonth(type, months) {
      var d = new Date();
      var year = d.getFullYear();
      var month = d.getMonth() + 1;
      if (Math.abs(months) > 12) {
        months = months % 12;
      }
      if (months != 0) {
        if (month + months > 12) {
          year++;
          month = (month + months) % 12;
        } else if (month + months < 1) {
          year--;
          month = 12 + month + months;
        } else {
          month = month + months;
        }
      }
      month = month < 10 ? "0" + month : month;
      var date = d.getDate();
      var firstday = year + "-" + month + "-" + "01";
      var lastday = "";
      if (
        month == "01" ||
        month == "03" ||
        month == "05" ||
        month == "07" ||
        month == "08" ||
        month == "10" ||
        month == "12"
      ) {
        lastday = year + "-" + month + "-" + 31;
      } else if (month == "02") {
        if (
          (year % 4 == 0 && year % 100 != 0) ||
          (year % 100 == 0 && year % 400 == 0)
        ) {
          lastday = year + "-" + month + "-" + 29;
        } else {
          lastday = year + "-" + month + "-" + 28;
        }
      } else {
        lastday = year + "-" + month + "-" + 30;
      }
      var day = "";
      if (type == "s") {
        day = firstday;
      } else {
        day = lastday;
      }
      return day;
    },
    //季度获取
    getQuarterMonth(type) {
      var now = new Date();
      var nowMonth = now.getMonth();
      var year = now.getFullYear();
      var quarterStartMonth = 1;
      if (nowMonth < 3) {
        quarterStartMonth = 1;
      }
      if (2 < nowMonth && nowMonth < 6) {
        quarterStartMonth = 4;
      }
      if (5 < nowMonth && nowMonth < 9) {
        quarterStartMonth = 7;
      }
      if (nowMonth > 8) {
        quarterStartMonth = 10;
      }
      if (type == "s") {
        var day = year + "-" + quarterStartMonth + "-01";
      } //1-3 4-6 7-9 10-12
      if (type == "e") {
        if (quarterStartMonth == 1) {
          var day = year + "-" + (quarterStartMonth + 2) + "-31";
        }
        if (quarterStartMonth == 10) {
          var day = year + "-" + (quarterStartMonth + 2) + "-31";
        }
        if (quarterStartMonth == 4) {
          var day = year + "-" + (quarterStartMonth + 2) + "-30";
        }
        if (quarterStartMonth == 7) {
          var day = year + "-" + (quarterStartMonth + 2) + "-30";
        }
      }
      return day;
    },
    //年度获取
    getYear(type, dates) {
      var dd = new Date();
      var n = dates || 0;
      var year = dd.getFullYear() + Number(n);
      if (type == "s") {
        var day = year + "-01-01";
      }
      if (type == "e") {
        var day = year + "-12-31";
      }
      if (!type) {
        var day = year + "-01-01/" + year + "-12-31";
      }
      return day;
    },
    //上个季度开始时间
    getLastQuarterStartDate() {
      var now = new Date();
      var nowYear = now.getFullYear(); //当前年
      return new Date(nowYear, this.getQuarterStartMonth() - 3, 1);
    },
    //上个季度结束时间
    getLastQuarterEndDate() {
      var quarterEndMonth = this.getQuarterStartMonth() - 1;
      var now = new Date();
      now.setMonth(quarterEndMonth);
      var nowMonth = now.getMonth();
      var nowYear = now.getFullYear();
      return new Date(
        nowYear,
        quarterEndMonth,
        this.getMonthDays(quarterEndMonth)
      );
    },
    //下个季度开始时间
    getNextQuarterStartDate() {
      var now = new Date();
      var nowYear = now.getFullYear(); //当前年
      return new Date(nowYear, this.getQuarterStartMonth() + 3, 1);
    },
    //下个季度结束时间
    getNextQuarterEndDate() {
      var quarterEndMonth = this.getQuarterStartMonth() + 5;
      var now = new Date();
      now.setMonth(quarterEndMonth);
      var nowMonth = now.getMonth();
      var nowYear = now.getFullYear();
      return new Date(
        nowYear,
        quarterEndMonth,
        this.getMonthDays(quarterEndMonth)
      );
    },
    //获得本季度的开始月份
    getQuarterStartMonth() {
      var nowMonth = new Date().getMonth();
      var quarterStartMonth = 0;
      if (nowMonth < 3) {
        quarterStartMonth = 0;
      }
      if (2 < nowMonth && nowMonth < 6) {
        quarterStartMonth = 3;
      }
      if (5 < nowMonth && nowMonth < 9) {
        quarterStartMonth = 6;
      }
      if (nowMonth > 8) {
        quarterStartMonth = 9;
      }
      return quarterStartMonth;
    },
    //获得某月的天数
    getMonthDays(myMonth) {
      var nowYear = new Date().getFullYear(); //当前年
      var monthStartDate = new Date(nowYear, myMonth, 1);
      var monthEndDate = new Date(nowYear, myMonth + 1, 1);
      var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
      return days;
    },


    // 【时间格式转换 YYYY-MM-DD】
    getDayTimer(data) {
      var date = new Date(data);
      var y = date.getFullYear();
      var m = date.getMonth() + 1;
      m = m < 10 ? "0" + m : m;
      var d = date.getDate();
      d = d < 10 ? "0" + d : d;
      var currentdate = y + "-" + m + "-" + d;
      return currentdate;
    },
    // 【时间格式转换 YYYY-MM-DD hh:mm:ss】
    getDayTimerHms(data) {
      var date = new Date(data);
      var y = date.getFullYear();
      var m = date.getMonth() + 1;
      m = m < 10 ? "0" + m : m;
      var d = date.getDate();
      d = d < 10 ? "0" + d : d;
      var currentdate = y + "-" + m + "-" + d;
      var hh = date.getHours();
      hh = hh < 10 ? "0" + hh : hh;
      var mm = date.getMinutes();
      mm = mm < 10 ? "0" + mm : mm;
      var ss = date.getSeconds();
      ss = ss < 10 ? "0" + ss : ss;
      var time = hh + ":" + mm + ":" + ss;
      return currentdate + " " + time;
    },
    // 获取当前是第几季度
    getQuarterByMonth() {
      var today = new Date(); //获取当前时间
      var month = today.getMonth() + 1; //getMonth返回0-11
      //下面是几个if
      if (month >= 1 && month <= 3) {
        return 1;
      } else if (month >= 4 && month <= 6) {
        return 2;
      } else if (month >= 7 && month <= 9) {
        return 3;
      } else {
        return 4;
      }
    },
  },
};
</script>


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js获取昨天,今天,明天,上周,本周,下周,上月,本月,下月,去年,本年,明年,上季度,本季度,下季度,向前推日期等 的相关文章

随机推荐

  • 人脸检测算法YuNet再次提升,参数量降至54K

    我们的人脸检测项目libfacedetection是2015年创建的开源项目 算法模型为YuNet 已经持续维护8年至今 在GitHub上已经获得11 7K星 欢迎大家三连 使用 反馈和建议 2022 2023年我们对训练部分进行了大幅改进
  • 让安全动起来

    山石网科带你 分分钟拿下靶标 一 信息收集 信息收集是整个攻击流程当中最重要的一步 从 web 入手 首先需要收集子域名 可以通过枚举的方式收集子域名 例如经典的 layzer子域名挖掘机 另外还可以通过搜索引擎收集子域名 例如 fofa
  • js对数据进行加密(账户密码加密)@莫成尘

    先看代码 复制使用即可 这是一个比较常用的场景我们借助了 crypto es gt vue3 crypto es gt vue2 库 如您满意请给莫成尘点个star 将他封装为单独的js文件 import CryptoJS from cry
  • Fabric CA国密版本的一种替代方案--使用cryptogen工具增加新用户

    在Fabric超级账本中 如果我们想动态增加用户发行证书 一般会使用Fabric CA或者其它CA 然而在国密改造场景中 当前缺乏可用的开源的Fabric CA国密版本 因此 笔者研究了一下 发现了一种可不使用CA直接使用cryptogen
  • 7-2 交换最小值和最大值 (15分)

    7 2 交换最小值和最大值 15分 本题要求编写程序 先将输入的一系列整数中的最小值与第一个数交换 然后将最大值与最后一个数交换 最后输出交换后的序列 注意 题目保证最大和最小值都是唯一的 输入格式 输入在第一行中给出一个正整数N 10 第
  • Chapter5 --Clocks(时钟及虚拟时钟)

    文章目录 5 3 create clock 5 3 1 Specifying Clock Period 5 3 2 Identifying the Clock Source 5 3 3 Naming the Clock 5 3 4 Spec
  • 操作系统处理机调度及常见的调度算法

    处理机调度的层次 高级调度 高级调度又称为作业调度或长程调度 其主要功能是根据某种算法 把外存上处于后备队列中的那些作业调入内存 也就是说 它的调度对象是作业 中级调度 又称为中程调度 引入中程调度的目的是为了提高内存利用率和系统吞吐量 中
  • IDEA与IDEA(2020.1版本)的安装

    DEA简介 IDEA 全称 IntelliJ IDEA 是 Java 语言开发的集成环境 IntelliJ 在业界被公认为最好的 Java 开发工具之一 IDEA 是 JetBrains 公司的产品 这家公司总部位于捷克共和国的首都布拉格
  • elementUI中的el-date-picker日期月份时间选择器禁用

    1 时间选择器禁用 当开始时间已经选择时 结束时间不能小于开始时间 即禁用结束时间选择器中开始时间前 反之亦然 template内容
  • 【HarmonyOS】实现将pcm音频文件进行编码并写入文件(API6 Java)

    关键字 音频编码 管道模式 createEncoder 写在前面 在使用API6开发HarmonyOS应用时 如何将pcm源文件进行编码并写入文件 最后生成aac文件 本文直接附上主要代码开发步骤供大家参考 主要功能代码 import oh
  • 现阶段项目介绍及电脑网络/RFID/NFC概述

    现阶段项目介绍及电脑网络 RFID NFC概述 文章目录 现阶段项目介绍及电脑网络 RFID NFC概述 1 现阶段项目介绍和行业前景 2 RFID 1 RFID概述 2 应用 3 技术及性能参数 4 使用风险 3 NFC 1 概述 2 工
  • A*算法解八数码问题

    1 问题描述 1 1什么是八数码问题 八数码游戏包括一个33的棋盘 棋盘上摆放着8个数字的棋子 留下一个空位 与空位相邻的棋子可以滑动到空位中 游戏的目的是要达到一个特定的目标状态 标注的形式化如下 1 2 3 4 5 6 7 8 1 2问
  • [转]vue3中使用vueQuill富文本编辑器详细教程,图片上传-图片压缩

    vueQuill是支持vue3的富文本编辑器组件 使用简单方便 官方网址 https vueup github io vue quill 效果图 1 安装 在官网有详细的安装教程 npm或者yran下载 npm install vueup
  • k8s 以statefulset方式部署zookeeper集群

    k8s 以statefulset方式部署zookeeper集群 参考 k8s官网zookeeper集群的部署 数据挂着方式改成通过本地方式创建的pv https kubernetes io docs tutorials stateful a
  • [深度解剖C语言] --关键字 static

    static 最名不副实的关键字 目录 1 static修饰全局变量 2 static修饰函数 3 static修饰局部变量 static的作用 1 static修饰全局变量 我们创建两个源文件 一个test c 一个main c 现在我们
  • 【日常问题记录】visual studio 出现 E0266 “data“ 不明确 错误

    解决方法 定义的变量和内部变量冲突 将变量的把名字改成其他名字即可
  • 【Kubernetes】mac 安装minikube

    1 一 官网安装 官网 https minikube sigs k8s io 搜了下网上如何通过Mac 安装看网上文章很多 但是受限于国内网络环境 很多都不行 各种下载失败 如果你有VPN 那么官方的步骤就容易走通 brew install
  • 小酌Django3——HTTP/URL/ORM简述

    小酌Django3 HTTP URL ORM简述 HTTP Hyper Text Transfer Protocol 超文本传输协议 是客户端与服务端请求和应答的标准 TCP 封装了Web服务的整个过程 通常 由客户端发起 建立到服务器指定
  • 矩阵基本知识

    1 identity matrix 单位矩阵 除了正对角线上是1 其它地方都是0 2 square matrix 方阵 行数和列数都相等的矩阵 3 diagonal matrix 对角矩阵 只在正对角线上有值 其它地方为0 4 matrix
  • js获取昨天,今天,明天,上周,本周,下周,上月,本月,下月,去年,本年,明年,上季度,本季度,下季度,向前推日期等

    配合的elementul的日期选择器使用的 参数是这样的 1代表 上 0代表 本 1代表 下 本月 1号到今天 意思就是比如今天是10月27号 那点击这个获取的是10月1号到10月27号得 效果如图 按顺序点了一遍 从左到右 上代码