使用Moment.js中获取上周的开始日期和结束日期(可自定义)

news2024/9/30 9:32:21

前言

有时候需求是这样的,想要获取上周的开始日期和结束日期,或者前几周的时间范围

比如今天是2023.11.28号,我想获取上周的周一到周日,也就是,上周的开始日期: 2023-11-20,上周的结束日期: 2023-11-26

moment || date

1.上代码,这种是直接获取的是上周的周一到周日

import moment from 'moment';

// 获取当前日期
const currentDate = moment();

// 获取上周的开始日期(周一)
const lastWeekStartDate = moment(currentDate).clone().subtract(1, 'weeks').startOf('isoWeek');

// 获取上周的结束日期(周天)
const lastWeekEndDate = moment(currentDate).clone().subtract(1, 'weeks').endOf('isoWeek');

console.log('上周的开始日期:', lastWeekStartDate.format('YYYY-MM-DD'));
console.log('上周的结束日期:', lastWeekEndDate.format('YYYY-MM-DD'));

moment date

2.如果想获取前三周的周一到周日

import moment from 'moment';

// 获取当前日期
const currentDate = moment();

// 获取上周的开始日期(周一)
const lastWeekStartDate = moment(currentDate).clone().subtract(3, 'weeks').startOf('isoWeek');

// 获取上周的结束日期(周天)
const lastWeekEndDate = moment(currentDate).clone().subtract(3, 'weeks').endOf('isoWeek');

console.log('上周的开始日期:', lastWeekStartDate.format('YYYY-MM-DD'));
console.log('上周的结束日期:', lastWeekEndDate.format('YYYY-MM-DD'));

moment date

3.如果想获取自定义的周一到周日

subtract(10, ‘weeks’) 这里的10可以替换成你想要的周期

import Moment from 'moment'
Vue.prototype.$moment = Moment

// 获取上周的开始日期(周一)
const lastWeekStartDate = this.$moment().clone().subtract(10, 'weeks').startOf('isoWeek');

// 获取上周的结束日期(周天)
const lastWeekEndDate = this.$moment().clone().subtract(10, 'weeks').endOf('isoWeek');

4.获取具体的时分秒

传时分秒进去就可以了,format('YYYY-MM-DD HH:mm:ss')

main.js`
import Moment from 'moment'
Vue.prototype.$moment = Moment
index.vue
// 获取上周的开始日期(周一)
const lastWeekStartDate = this.$moment().clone().subtract(10, 'weeks').startOf('isoWeek');

// 获取上周的结束日期(周天)
const lastWeekEndDate = this.$moment().clone().subtract(10, 'weeks').endOf('isoWeek');
console.log('上周的开始日期:', lastWeekStartDate.format('YYYY-MM-DD HH:mm:ss'))
console.log('上周的结束日期:', lastWeekEndDate.format('YYYY-MM-DD HH:mm:ss'))

注意事项

  • 1.不能把.clone()去掉,目的是为了创建一个Moment对象的副本,不会影响到当前日期currentDate
  • 2.使用 subtract(1, ‘weeks’) 减去一周,前面的数字就是你自定义的周期数
  • 3.startOf('week')endOf('week')分别获取上周的开始日期和结束日期,周日作为一周的开始,这可能与你所在的地区的一周开始日期不一致。
  • 4.startOf('isoWeek')endOf('isoWeek')获取的是上周的周一到周日
如有对时间不懂的可留言!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1261713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Digicert OV 代码签名介绍

Digicert OV 代码签名证书是一种数字证书,用于对软件代码进行数字签名。数字签名是一种验证软件来源和完整性的技术,通过使用私有密钥对代码进行签名,并在签名后使用公共密钥验证签名。 可基于更多平台,最大限度地提高分发量和收…

Proto3语法详解02

目录 1.默认值 2.更新消息 2.1更新规则 2.2保留字段reserved 2.2.1创建通讯录3.0版本---验证错误删除字段造成的数据损坏 2.3未知字段 2.3.1未知字段从哪获取 3.3.2升级通讯录3.1版本--验证未知字段 2.4前后兼容性 3.选项option 3.1选项分类 3.2常用选项列举 1.默认值…

Valentina Studio Pro:引领数据库管理软件新潮流

你是否正在寻找一款强大且易用的数据库管理软件?Valentina Studio Pro可能就是你的不二之选。这款软件是由Valentina Team开发的一款综合性数据库管理和编辑工具,它支持多种数据库系统,包括MySQL、PostgreSQL、SQLite等。 Valentina Studio …

前端页面带值跳转

前端页面带值跳转 querry>url searchParamers,url后附加参数,传递的值长度与有限vuex(全局状态管理),搜索页面将关键词塞到状态中,所搜结果页从状态取值。 使用axios整合前后端 axios官网:axios 在前…

零基础在ubuntu上搭建rtmp服务器-srs

搭建服务器 搭建 SRS(Simple-RTMP-Server)服务器需要一些步骤,以下是一个简单的步骤指南。请注意,SRS 的配置可能会有所不同,具体取决于你的需求和环境。在开始之前,请确保你的 Ubuntu 系统已经连接到互联…

vue3+vite搭建cesium项目

1.创建项目 cnpm create vite 2.安装依赖 npm i cesium vite-plugin-cesium vite -D 3.在vite.config.js里进行配置 import { defineConfig } from vite import vue from vitejs/plugin-vue import cesium from vite-plugin-cesium; export default defineConfig({plugins…

hello vtk 圆柱

VTK 可视化的流程及步骤 标题引入VTK库和初始化: 引入 VTK 库和 AutoInit 模块,以便使用 VTK 的渲染和交互功能 设置背景颜色和颜色对象: 使用 vtkNamedColors 设置背景颜色和演员颜色。 创建圆柱体源: 使用 vtkCylinderSou…

企业精益生产管理十大工具的介绍及应用

追求零库存、快速响应、企业内外部环境的和谐统一,是精益生产的核心理念。简而言之,就是消除企业一切非增值活动,以达到降本增效的目的。 企业精益生产管理十大工具包括: 价值流分析。精益生产管理以价值为核心,它有两…

外贸CRM应该这样选型

在目前严峻的外贸环境和竞争逐渐进入白热化阶段的背景下,很多外贸公司好像束手无策。因而,精益管理已成为外贸企业的新目标。CRM管理系统是解决问题、实现业绩飞越的好办法。下面,让我为您分享:外贸行业管理者必看的CRM选型指南 …

Redis主从与哨兵架构详解

目录 主从架构 主从环境搭建 主从复制流程 1. 全量复制 2. 部分复制 主从风暴 哨兵架构 概念 哨兵环境搭建 主从架构 主从环境搭建 1. 复制一份redis.conf文件, 修改下面几行配置 port 6380 pidfile /var/run/redis_6380.pid logfile "6380.log" dir /usr/…

centos7-docker安装与使用

文章目录 一、docker简介1.1docker应用场景1.2docker的优点1.2.1快速,一致地交付应用程序1.2.2响应式部署和扩展1.2.3在同一硬件上运行更多工作负载 1.2docker的架构 二、docker的安装2.1新系统的环境搭建2.1.1更换yum源 2.2安装docker与卸载2.2.1yum安装docker2.2.…

监控大屏 | 拐角OLED柔性屏:实现拐角处连惯拼接显示

监控大屏 | 拐角OLED柔性屏 产品:20块55寸OLED柔性屏 项目时间:2023年10月 项目地点:贵州 应用场景:在监控大厅三面墙都要装显示屏,利用OLED柔性屏可弯曲的特性,在两个捌角处进行拼接安装。 在2023年10…

XML Schema中的attributeFormDefault

XML Schema中的attributeFormDefault属性,用以指定元素的属性默认是否必须带有命名空间前缀。 attributeFormDefault属性可以取值qualified或unqualified,默认值是unqualified。 当取值为qualified时,表示属性必须用命名空间作为前缀&#x…

ASIWebPage数据库抓取代码示例

objective-c #import "ASIWebPageRequest.h" int main(int argc, const char * argv[]) { autoreleasepool { // 创建并设置 NSURL *代理URL [NSURL URLWithString:""]; ASIHTTPRequest *request [ASIHTTPRequest requestW…

蓝桥杯-01简介

文章目录 蓝桥杯简介参考资源蓝桥杯官网第15届大赛章程一、概况(一)大赛背景和宗旨(二)大赛特色(三)大赛项目1.Java软件开发2.C/C程序设计3.Python程序设计4.Web应用开发5.软件测试6.网络安全7.嵌入式设计与…

Mac使用nvm安装低于node16 版本卡死缓慢

在使用M1和M2的时候,采用nvm安装Node16的版本就会出现一直下载卡死,内存增大 一、解决步骤 在简介信息里面勾选 使用Rosetta打开,如图: 然后重启终端,重新使用nvm安装Node16即可成功

Elasticsearch(ES)概述

文章目录 一.什么是Elasticsearch?1.正向索引和倒排索引2.Mysql和ES的概念对比3.安装elasticsearch、kibana 二.IK分词器三.索引库操作四.文档操作五.RestClient操作索引库1.初始化RestClient2.创建索引库3.删除索引库4.判断索引库是否存在 六.RestClient操作文档1.新增文档2.…

基于springboot实现的学生宿舍管理系统

一、系统架构 前端:html | jquery | bootstrap 后端:springboot | spring-data 环境:jdk1.8 | maven | mysql 二、代码及数据库 三、功能介绍 01. 登录页 02. 管理员-首页 03. 管理员-学生管理 04. 管理员-楼宇管理 05. 管理员-宿舍管理 06.…

好用的样式动画库集合(css、js)

文章目录 前言一、Animate.css二、Anime.js三、CSShake四、Hover.css五、AniJS六、Animista七、Tachyons-animate八、Sequence.js九、Infinite十、OBNOXIOUS.CSS十一、MOTION UI十二、Keyframes.app十三、AnimXYZ十四、Whirl十五、Hamburgers十六、Vivify十七、Magic Animation…

【Vue】Linux 运行 npm run serve 报错 vue-cli-service: Permission denied

问题描述 在Linux系统上运行npm run serve命令时,控制台报错: sudo npm run serve project50.1.0 serve vue-cli-service serve sh: 1: vue-cli-service: Permission denied错误截图如下: 原因分析 该错误是由于vue-cli-service文件权限不…