相关文章推荐
捣蛋的松球  ·  服务器无法使用smtp发送邮件 - ...·  7 月前    · 
还单身的红金鱼  ·  jquery打印pdf - CSDN文库·  7 月前    · 
闯红灯的八宝粥  ·  MyBatis操作Oracle批量插入 ...·  1 年前    · 
腼腆的小马驹  ·  提示“event”已弃用时解决办法_gxhl ...·  1 年前    · 
茫然的春卷  ·  Migrating projects ...·  2 年前    · 
Code  ›  用 moment 实现获取本周、前 n 周、后 n 周开始结束日期开发者社区
https://cloud.tencent.com/developer/article/1972846
严肃的黄瓜
1 年前
solocoder

用 moment 实现获取本周、前 n 周、后 n 周开始结束日期

腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
solocoder
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 用 moment 实现获取本周、前 n 周、后 n 周开始结束日期

用 moment 实现获取本周、前 n 周、后 n 周开始结束日期

作者头像
solocoder
发布 于 2022-04-06 13:34:09
3.5K 0
发布 于 2022-04-06 13:34:09
举报
文章被收录于专栏: 大前端客栈 大前端客栈

本文用 moment.js 实现了获取本周、前 n 周、后 n 周开始结束日期,即周一、周日日期的方法。

先看代码,封装了个工具类 DateTimeUtils.js ,可以直接复制到项目中使用

/**
 * 时间日期工具类
import moment from 'moment'
export default {
获取本周周一和周日日期
  getCurrentWeek() {
    const start = moment().weekday(1).format('YYYY-MM-DD'); //本周一
    const end = moment().weekday(7).format('YYYY-MM-DD'); //本周日
    return [start, end]
获取前 i 周的周一和周日日期,并以数组的方式返回。
当 i=1,获取的是上周一和上周日的日期;
当 i=2,获取的是上上周一和上上周日的日期
...以此类推
@param i
  getLastWeek(i) {
    let weekOfDay = parseInt(moment().format('E'));//计算今天是这周第几天
    let last_monday = moment().subtract(weekOfDay + 7 * i - 1, 'days').format('YYYY-MM-DD');//周一日期
    let last_sunday = moment().subtract(weekOfDay + 7 * (i - 1), 'days').format('YYYY-MM-DD');//周日日期
    return [last_monday, last_sunday]
获取后 i 周的周一和周日日期,并以数组的方式返回。
当 i=1,获取的是下周一和下周日的日期;
当 i=2,获取的是下下周一和下下周日的日期
...以此类推
@param i
  getNextWeek(i) {
    let weekOfDay = parseInt(moment().format('E'));//计算今天是这周第几天
    let next_monday = moment().add((7 - weekOfDay) + 7 * (i - 1) + 1, 'days').format('YYYY-MM-DD');//周一日期
    let next_sunday = moment().add((7 - weekOfDay) + 7 * i, 'days').format('YYYY-MM-DD');//周日日期
    return [next_monday, next_sunday]
}

举几个例子来说明使用方法

let currentWeek1 = DateTimeUtils.getCurrentWeek()  //获取本周开始结束日期
let currentWeek2 = DateTimeUtils.getLastWeek(0)  //获取本周开始结束日期
let currentWeek3 = DateTimeUtils.getNextWeek(0)  //获取本周开始结束日期
let lastWeek1 = DateTimeUtils.getLastWeek(1)  //获取上周开始结束日期
 
推荐文章
捣蛋的松球  ·  服务器无法使用smtp发送邮件 - Microsoft Community
7 月前
还单身的红金鱼  ·  jquery打印pdf - CSDN文库
7 月前
闯红灯的八宝粥  ·  MyBatis操作Oracle批量插入 ORA-00933: SQL 命令未正确结束-腾讯云开发者社区-腾讯云
1 年前
腼腆的小马驹  ·  提示“event”已弃用时解决办法_gxhlh的博客-CSDN博客
1 年前
茫然的春卷  ·  Migrating projects using file exports | GitLab
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号