js获取指定日期的一周事件、一周开始和结束的日期

2023-10-30

我们将这些函数挂载到Date身上

//周开始日期(周一为每周开始,周日为每周结束)
Date.prototype.beginOfWeek = function () {
  let subDay = 0;
  let weekDay = this.getDay();
  if (weekDay == 0) {
    //周天
    subDay = 6;
  } else {
    subDay = weekDay - 1;
  }
  let beginDateTime = this.getTime() - (86400000 * subDay);
  let data = new Date(beginDateTime).getDate()
  let month = new Date(beginDateTime).getMonth() + 1
  let year = new Date(beginDateTime).getFullYear()
  return year + '-' + (month < 10 ? '0' + month : month) + '-' + (data < 10 ? '0' + data : data);
}
//周结束日期(周一为每周开始,周日为每周结束)
Date.prototype.endOfWeek = function () {
  let weekDay = this.getDay();
  if (weekDay == 0) {
    //周天
    let data = this.getDate()
    let month = this.getMonth() + 1
    let year = this.getFullYear()
    return year + '-' + (month < 10 ? '0' + month : month) + '-' + (data < 10 ? '0' + data : data);
  } else {
    let addDay = 7 - weekDay;
    let endDateTime = this.getTime() + (86400000 * addDay);
    let data = new Date(endDateTime).getDate()
    let month = new Date(endDateTime).getMonth() + 1
    let year = new Date(endDateTime).getFullYear()
    return year + '-' + (month < 10 ? '0' + month : month) + '-' + (data < 10 ? '0' + data : data);
  }
}
// 指定日期的一周的所有日期的数组
Date.prototype.getWeekTime = function () {
  // var new_Date = new Date(2021,11,10) //获取指定日期当周的一周日期
  var new_Date = this//获取本周一周日期
  var timesStamp = new_Date.getTime();
  var currenDay = new_Date.getDay();
  var dates = [];
  for (var i = 0; i < 7; i++) {
    var das = new Date(timesStamp + 24 * 60 * 60 * 1000 * (i - (currenDay + 6) % 7)).toLocaleDateString();
    das.replace(/[年月]/g, '.').replace(/[日上下午]/g, '');
    dates.push(das);
  }
  return dates
}

使用:

new Date().getWeekTime()
new Date(2023,2,15).getWeekTime()
new Date(2023,2,15).beginOfWeek()
new Date(2023,2,15).endOfWeek()

结果:

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

js获取指定日期的一周事件、一周开始和结束的日期 的相关文章

随机推荐

  • net core 建立webservice项目

    1 创建项目 2 通过NuGet安装SoapCore 3 创建服务接口及实现类 本项目会创建2个webservice服务文件用于测试 所以创建了2个model类和2个接口文件 Model类 DataContract public class
  • electron-vue 打包桌面应用程序并封装

    Electron是一个使用 JavaScript HTML 和 CSS 构建桌面应用程序的框架 嵌入 Chromium 和 Node js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windo
  • Win10下Linux虚拟机安装

    作为编程新手 由于公司需要使用Linux 而自己的电脑是Windows系统 这时候安装Linux虚拟机就是一个非常好的熟悉Linux的方法了 需要下载的资源如下 1 VMware workstation14 1 2 2 CentOS 7 x
  • spring mvc+mybatis+ spring 基于全注解事务配置

    spring mvc 自动扫描注解时 不需要扫描 Service
  • 根据页面高度变化动态改变element的table组件的最大高度

    本文提供方法 主要用来解决流体高度的element的表格组件 还需要根据页面高度变化而变化最大高度 js部分 定义方法后需要在页面刚刚创建时就调用一次 使表格获得合适的初始表格高度 再监听页面resize事件 function listen
  • 在linux下搜索一个文件

    在windows下有一个搜索工具 可以让我们很快的找到一个文件 这是很有用的 然而在linux下搜索功能更加强大 which 用来查找可执行文件的绝对路径 在前面已经用到该命令 需要注意的一点是 which只能用来查找PATH环境变量中出现
  • 深信服产品介绍

    传统防火墙 包过滤防火墙 判断信息 数据包的源ip地址 协议类型 源端口 目的端口 五元组 工作范围 网络层 传输层 3 4层 和路由器的区别 1 普通的路由器只检查数据包的目标地址 并选择一个达到目的地址的最佳路径 2 防火墙除了要决定目
  • 2020年蓝桥杯国赛-答疑

    题目 题目链接 题解 贪心 有点像 排队打水 比较好想 而且我甚至都能证明 贪心思路 按照 s a e s a e s a e 从小到大排序即可 证明 首先 每个人的
  • 服务器IP经常更换对网站会产生怎样的影响

    随着互联网的发展 越来越多的用户都在使用其带给我们的好处 但是很多朋友可能很多朋友应该都听过服务器 ip以及域名这些名词 但是它们到底是什么 能作什么用 可能一些朋友就不太清楚了 ip地址是一台服务器所必须的 只有输入正确的ip地址 才能找
  • MySQL架构和运行机制解析

    先来看看 mysql 技术架构 MySQL 技术架构和运行机制 连接器 connect 连接器负责跟客户端建立连接 获取权限 维持和管理连接 有些时候 MySQL 占用内存涨得特别快 是因为在执行过程中临时使用的内存 join buffer
  • 深入理解单例模式:静态内部类单例原理

    本文主要介绍java的单例模式 以及详细剖析静态内部类之所以能够实现单例的原理 OK 废话不多说 进入正文 首先我们要先了解下单例的四大原则 1 构造私有 2 以静态方法或者枚举返回实例 3 确保实例只有一个 尤其是多线程环境 4 确保反序
  • 步进电机芯片

    步进电机芯片 LV8728 128细分 1 8A LV8727 128细分 4A THB6064AH 64细分 THB6064MQ 64细分 256细分 512细分
  • funcanary[CISCN2023初赛]-爆破canary+pie

    funcanary 一 保护检查 二 IDA分析 三 exp编写 四 exp 一 保护检查 先检查文件的保护以及文件的类型 保护全开 64位程序 通过题目大概也知道想考察的内容是canary保护绕过或者canary泄露 二 IDA分析 首当
  • Java 代码块学习笔记(基础)

    目录 代码块 阉割的方法 只剩下方法体 1 普通代码块 定义在方法体内且无修饰符的代码块 2 静态代码块 定义在方法体外 类里面且须用 static 修饰的代码块 3 构造代码块 定义在方法体外 类里面但不用修饰的代码块 4 同步代码块 r
  • 【Springboot】整合wxjava实现 微信小程序:模板消息

    文章目录 一 模板消息是什么 二 整合步骤 1 微信小程序后台配置模板消息 2 发送模板消息 后端逻辑代码 controller service impl 前端逻辑代码 测试 提示 以下是本篇文章正文内容 下面案例可供参考 一 模板消息是什
  • linux2==阿里云ECS centos8安装mysql,通过上传tar.gz

    安装地址 usr local mysql 1 检测当前系统是否安装过MySQL相关数据库 需要通过rpm相关指令 来查询当前系统中是否存在已安装的mysql软件包 执行指令如下 rpm qa 查询当前系统中安装的所有软件 rpm qa gr
  • LVGL学习(2):图片的转换和显示

    我们在设计UI的过程中可能需要显示一些图片 本篇文章将介绍如何转换并显示一个固定的图片到lv img中 文章目录 1 图片转换 1 1 GUI Guider 1 2 在线转换 2 图片的显示 1 图片转换 和之前我写的一篇字体转换的文章一样
  • linux下u盘挂载及拷贝

    linux下插入u盘后 可以使用三种命令查看u盘在linux下的磁盘分区 1 ll dev sd 2 df l 3 fdisk l 挂载u盘后在linux下会显示 dev sdb 是u盘中一个小的引导分区 u盘的文件内容不在这里 dev s
  • 知识杂记1

    修改git默认编辑器 git config global core editor vim scp断点续传 使用rsync 参考https blog csdn net hepeng597 article details 8960885 git
  • js获取指定日期的一周事件、一周开始和结束的日期

    我们将这些函数挂载到Date身上 周开始日期 周一为每周开始 周日为每周结束 Date prototype beginOfWeek function let subDay 0 let weekDay this getDay if weekD