获取当天,本周,本月,本季度,本半年,本年时间

2023-10-30

1. 使用场景

elemet-plus 组件库,日期选择器快捷使用选择本月,本季度时间…

2. 方法

const useDate = () => {
  const now = new Date() // 当前日期
  const nowYear = now.getFullYear() //当前年
  const nowMonth = now.getMonth() //当前月
  const nowDay = now.getDate() // 当前日
  const nowDayOfWeek = now.getDay() // 周几
  const jd = Math.ceil((nowMonth + 1) / 3) // 当前季度

  // 当天
  function getCurDay() {
    return [now, now]
  }

  // 本周
  function getCurWeek() {
    const startDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
    const endDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek))
    return [startDate, endDate]
  }
  // 本月
  function getCurMonth() {
    const startDate = new Date(nowYear, nowMonth, 1)
    const endDate = new Date(nowYear, nowMonth + 1, 0)
    return [startDate, endDate]
  }
  
  // 本季度
  function getCurQuarter() {
    const startDate = new Date(nowYear, (jd - 1) * 3, 1)
    const endDate = new Date(nowYear, jd * 3, 0)
    return [startDate, endDate]
  }
  
  // 本半年
  function getCurHalfYear() {
    const startD = new Date(nowYear, nowMonth - 4, 1)
    const startDate = new Date(nowYear, 0, 1)
    const endD = new Date(nowYear, nowMonth + 1, 0)
    const year = startD.getFullYear()
    if (year === nowYear) {
      return [startD, endD]
    } else {
      return [startDate, endD]
    }
  }
  
  // 本年
  function getCurYear() {
    const startDate = new Date(nowYear, 0, 1)
    const endDate = new Date(nowYear, 11, 0)
    return [startDate, endDate]
  }

  return {
    getCurDay,
    getCurWeek,
    getCurMonth,
    getCurQuarter,
    getCurHalfYear,
    getCurYear,
  }
}

const {
  getCurDay,
  getCurWeek,
  getCurMonth,
  getCurQuarter,
  getCurHalfYear,
  getCurYear,
} = useDate()

export const shortcuts = [
  {
    text: '当天',
    value: getCurDay(),
  },
  {
    text: '本周',
    value: getCurWeek(),
  },
  {
    text: '本月',
    value: getCurMonth(),
  },
  {
    text: '本季度',
    value: getCurQuarter(),
  },
  {
    text: '半年',
    value: getCurHalfYear(),
  },
  {
    text: '当年',
    value: getCurYear(),
  },
]

如有疑问欢迎留言交流,有更好的方法希望不吝赐教~

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

获取当天,本周,本月,本季度,本半年,本年时间 的相关文章

随机推荐

  • python正则表达式爬取【豆瓣电影top250】(新手向)

    最近在学崔大的 网络爬虫开发与实战 学到正则表达式那块儿 便迎来了自己的第一个实战项目 话不多说 正式进入正文 本次爬虫工具使用的是pycharm 已经提前安装好了所有包 安装方式 file Settings Project Interpr
  • 双亲委派机制及其部分源码分析

    双亲委派机制 双亲委派机制 我理解的 双亲委派机制 简单来讲就是 类加载器加载类的时候是 自顶向下 的过程来加载 详情如下 在某个加载器进行类加载是 会逐级向上找到他最终的父类 BootstrapClassLoader 先进行加载 逐级向下
  • List元素移除-迭代器删除

    Exception in thread main java util ConcurrentModificationException异常解决方案 使用迭代器方式删除List元素内容 当直接用List的remove移除元素时 会报如上异常 比
  • Hinton关于RBM的代码注解之(三)mnistclassify.m

    mnistclssify m clear all close all maxepoch 50 最大迭代次数 numhid 500 numpen 500 numpen2 2000 对应的1 2 3层隐含层单元的个数 fprintf 1 Con
  • C++ 的封装、继承、多态

    面向对象的三个基本特征 面向对象的三个基本特征是 封装 继承 多态 封装可以隐藏实现细节 使得代码模块化 继承可以扩展已存在的代码模块 类 多态则是为了实现另一个目的 接口重用 它们的目的都是为了 代码重用 封装 目的 隐藏实现细节 使得代
  • Python 控制 Raspberry Pi 云台多舵机

    多舵机控制 使用 Python 和云台机制构造进行 Raspberry Pi 相机定位 所需材料 在本教程中 我们将探索如何在 Raspberry Pi 上使用 Python 控制多个舵机 我们的目标是使用云台机制来定位相机 PiCam 如
  • 【测试开发】基于 MeterSphere 的接口测试流程

    基于 MeterSphere 的接口测试流程 MeterSphere 接口测试模块提供了 接口定义 接口自动化 等接口测试相关功能 用户可以使用树状多级模块来分级分组管理项目下的接口列表 创建执行接口用例测试接口 组合编排多个接口用例进行场
  • 电子产品推荐系统的设计与实现

    其他项目 点击作者主页 目录 1 系统简介 2 系统相关技术 2 1 JSP技术 2 2 B S架构 2 3 MySQL数据库技术 2 4 SSM 3 需求分析 3 1 系统功能需求分析 3 2 系统非功能需求分析 4 系统设计 4 1 系
  • websocket协议

    WebSocket是一种在Web应用程序中实现实时双向通信的协议 一种在单个TCP连接上进行全双工通信的协议 它使得客户端和服务器之间的数据交换变得更加简单 允许服务端主动向客户端推送数据 WebSocket 与 HTTP 2 一样 其实都
  • Java如何对一个对象进行深拷贝?

    深拷贝实现代码 https github com wudashan java deep copy 介绍 在Java语言里 当我们需要拷贝一个对象时 有两种类型的拷贝 浅拷贝与深拷贝 浅拷贝只是拷贝了源对象的地址 所以源对象的值发生变化时 拷
  • 【Transformers】第 1 章 :Hello Transformers

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • QWidget: Must construct a QApplication before a QWidget 请按任意键继续. . .

    系列文章目录 文章目录 系列文章目录 前言 一 错误原因 前言 一 错误原因 在调试examples工程时 遇到编译报错 QWidget Must construct a QApplication before a QWidget 根据字面
  • 打开软件或游戏出现找不到d3dcompiler_43.dll文件如何解决?

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个d3dcompiler 43 dll文件进行安装
  • SpringBoot的日志配置 logging.file.path和logging.file.name不能同时生效

    这里写自定义目录标题 logging file path和logging file name logging file path和logging file name logging file path data logs lra sdk l
  • day20 网络编程(上)

    day20 网络编程 上 课程目标 掌握网络相关的基础知识并可以基于Python开发程序 基于网络进行数据传输 课程概要 网络必备基础 网络编程 Python代码 B S和C S架构 1 必备基础 你必须了解的网络相关设备和基础概念 1 1
  • Caffe学习之自定义创建新的Layer层

    caffe源码中已经帮我封装好了各种各样的layer 但是有时候现有的layer不能满足设计的网络要求 这个时候需要自己定义一个新的layer 本文参考here 进行简单讲解 具体方式如下 一 创建 hpp文件 1 添加你的layer头文件
  • 利用PIFU-HD生成自己的三维人体图像

    这个小项目本身是在研一的时候调的 记录一下过程 以后在别的电脑上配置就容易点 我是在windows系统下配置的 gpu贼拉跨 报错很多 欢迎借鉴 总有一款错误适合你 然后友情提示 跑项目就是会遇到各种各样的错误 请需要的小伙伴耐心看 遇到问
  • 简析区块链的特点和每个分层的作用

    区块链技术在这几年不停的发展更新 相应的区块链服务应用和技术也逐渐走向成熟 区块链技术相对于行业内的内来说就相对熟悉一些 但对于那些还未接触这些技术知识的人来说就相当陌生 区块链技术有什么特点 区块链底层系统有哪些分层 对应的作用分别是什么
  • 设备树学习之(二)点灯

    开发板 tiny4412SDK S702 4GB Flash 要移植的内核版本 Linux 4 4 0 支持device tree u boot版本 友善之臂自带的 U Boot 2010 12 busybox版本 busybox 1 25
  • 获取当天,本周,本月,本季度,本半年,本年时间

    1 使用场景 elemet plus 组件库 日期选择器快捷使用选择本月 本季度时间 2 方法 const useDate gt const now new Date 当前日期 const nowYear now getFullYear 当