前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >moment.js处理日期偏移的几个方法示例:获取前n天/周/月/年

moment.js处理日期偏移的几个方法示例:获取前n天/周/月/年

作者头像
德顺
发布于 2023-08-25 05:36:45
发布于 2023-08-25 05:36:45
1.8K00
代码可运行
举报
文章被收录于专栏:前端资源前端资源
运行总次数:0
代码可运行

moment.js 是一个用于解析、校验、操作、显示日期和时间的 JavaScript 工具库,它提供了丰富而简洁的 API,让我们可以轻松地处理各种日期和时间相关的任务。

在本文中,我将分享几个 moment.js 的扩展应用方法,希望能够给你带来一些启发和帮助。

有时候我们需要获取某个日期之前或之后的某个时间点,比如获取昨天、上周、上个月或者去年的日期。这种情况下,我们可以使用 moment.js 的 subtract 和 add 方法来实现。

subtract 方法可以接受两个参数:第一个参数是一个数字,表示要减去多少单位;第二个参数是一个字符串,表示要减去的单位。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 获取昨天
moment().subtract(1, 'days').format('YYYY-MM-DD');
// 获取上周
moment().subtract(1, 'weeks').format('YYYY-MM-DD');
// 获取上个月
moment().subtract(1, 'months').format('YYYY-MM-DD');
// 获取去年
moment().subtract(1, 'years').format('YYYY-MM-DD');

add 方法与 subtract 方法类似,只不过是增加而不是减少。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 获取明天
moment().add(1, 'days').format('YYYY-MM-DD');
// 获取下周
moment().add(1, 'weeks').format('YYYY-MM-DD');
// 获取下个月
moment().add(1, 'months').format('YYYY-MM-DD');
// 获取明年
moment().add(1, 'years').format('YYYY-MM-DD');

方便起见,我封装了几个方法,用来获取第前 n 天/周/月/年:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @description 获取第前 {n} 天
 * @param introTime 传入的时间 默认为当前时间
 * @param num 偏移值
 * @returns Format 格式
 */
export const getBeforeDay = (
  introTime: string | Moment = moment(new Date()),
  num: number = 24, // 默认值 24
  format: string = 'YYYYMMDD', // 默认日期格式 20230320
) => {
  return moment(introTime).subtract(num, 'days').format(format);
};

/**
 * @description 获取第前 {n} 个周
 * @param introTime 传入的时间 默认为当前时间
 * @param num 偏移值
 * @returns Format 格式
 */
export const getBeforeWeek = (
  introTime: string | Moment = moment(new Date()),
  num: number = 24,
  format: string = 'YYYYww',
) => {
  return moment(introTime).subtract(num, 'weeks').format(format);
};

/**
 * @description 获取第前 {n} 个月
 * @param introTime 传入的时间 默认为当前时间
 * @param num 偏移值
 * @returns Format 格式
 */
export const getBeforeMonth = (
  introTime: string | Moment = moment(new Date()),
  num: number = 24,
  format: string = 'YYYYMM',
) => {
  return moment(introTime).subtract(num, 'months').format(format);
};

/**
 * @description 获取第前 {n} 年
 * @param introTime 传入的时间 默认为当前时间
 * @param num 偏移值
 * @returns Format 格式
 */
export const getBeforeYear = (
  introTime: string | Moment = moment(new Date()),
  num: number = 10,
  format: string = 'YYYY',
) => {
  return moment(introTime).subtract(num, 'years').format(format);
};

还写了一个获取两个间隔日期之间的所有日期:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @description 获取两个日期之间的所有日期
 * @param startDate 传入的时间:开始日期
 * @param endDate 传入的时间:结束日期
 * @param unit 单位:默认是天
 * @param format 日期格式:默认为 YYYYMMDD
 * @returns 日期列表/数组
 */
export const getDaysBetweenDates = function (startDate: Moment, endDate: Moment, unit: 'days' | 'weeks' | 'months' | 'years' = 'days', format: string = 'YYYYMMDD',) {
  const now = startDate.clone(), dates = [];
  while (now.isSameOrBefore(endDate)) {
    dates.push(now.format(format));
    now.add(1, unit);
  }
  return dates;
};

本文介绍了 moment.js 这个非常优秀的 JavaScript 工具库,它可以帮助我们轻松地处理日期和时间相关的任务。分享了几个 moment.js 的扩展应用方法,包括如何获取第前 n 天/周/月/年、如何进行日期范围查询和格式化等。

还展示了如何使用自己编写的方法来实现这些功能,并且提供了相应的代码和示例。希望这篇文章能够对你有所帮助,让你能够更好地利用 moment.js 来提升你的 JavaScript 日期处理能力。

未经允许不得转载:w3h5-Web前端开发资源网 » moment.js处理日期偏移的几个方法示例:获取前n天/周/月/年

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue学习笔记之moment.js日期处理控件
moment可以方便的计算自然月或者自然年份,避免使用固定天数或者月份计算导致结束日期错乱问题。
Jetpropelledsnake21
2022/11/12
13.2K0
Vue学习笔记之moment.js日期处理控件
Moment.js常见用法
用户4396583
2024/07/24
1240
js中moment方法_jquery 虚拟dom
vue项目中,需要把 moment.js 挂载到全局上(即vue的原型链上),访问时直接使用 this.moment() ;
全栈程序员站长
2022/10/04
6.8K0
js中moment方法_jquery 虚拟dom
用 moment 实现获取本周、前 n 周、后 n 周开始结束日期
本文用 moment.js 实现了获取本周、前 n 周、后 n 周开始结束日期,即周一、周日日期的方法。
solocoder
2022/04/06
4.5K0
Vue 中 (moment)操作日期的加减与展示
1、首先在 pacaage.json 中引入依赖 "moment": "^2.29.4"
跟着飞哥学编程
2022/12/05
2.5K0
Vue 中 (moment)操作日期的加减与展示
moment.js使用详解
总结了关于moment.js库的常见用法,以功能为主线,实现相关代码,备忘备查。 const moment = require("moment"); let time = null; // 设置全局语言 moment.locale("zh-cn"); // 初始化当下时间 time = moment(); console.log(time); // 按照格式初始化 time = moment("2000-01-01", "YYYY-MM-DD"); console.log(time); //
心谭博客
2020/04/20
4K0
使用moment.js加减日期时间
创建Moment对象后,有时需要对其进行一些加减等操作,Moment中提供了一些方法来完成这些操作。
用户2323866
2021/06/23
8.6K0
使用moment格式化日期
例如:let startDate = moment(‘2018-09-27’).format(YYYY-MM-DD);
全栈程序员站长
2022/06/30
3.2K0
使用moment格式化日期
Moment.js的常用方法
安装与引用 官方文档 安装 npm install moment 引用 var moment = require('moment'); 自定义配置 获取当前语言 moment.locale(); 加载语言 moment.locale('zh-cn'); UTC 获取UTC moment().utc(); UTC偏移量 moment().utcOffset(); 设置偏移量 以下是相同的 moment().utcOffset("+08:00"); moment().utcOffset(8); mome
码客说
2019/10/22
4.4K0
moment.js的方法总结
结合t14,t15,t16就可以输出你想要的任何和当前日期、月份相关的日期 例如:我想获取去年今天的完整日期,如:今天是2019-7-31,我要输出的是2018-7-31
leon公众号精选
2022/04/27
4K0
moment.js的方法总结
测试需求平台15-非常好用的前端时间库Moment.js
JavaScript 日期处理类库( http://momentjs.cn/ ),它提供了一些经常用的时间处理方法,在node.js 和 浏览器中都可以直接使用。
MegaQi
2023/10/21
3200
测试需求平台15-非常好用的前端时间库Moment.js
vue + antd vue + moment 日期选择器,选择范围限制
用户4396583
2024/07/24
2770
如何使用JavaScript轻松获取30天前的日期
在前端开发中,有时候我们需要获取某个日期之前的具体日期,例如获取当前日期的前30天,这在业务场景中非常常见,比如计算优惠券的过期日期、查询历史数据等。本文将教你如何用JavaScript获取30天前的日期,同时介绍如何使用Moment.js这个强大的日期处理库来实现同样的功能。
前端达人
2024/11/25
1770
如何使用JavaScript轻松获取30天前的日期
Moment.js 写法示例
Moment.js 是我用过的最好用的操作时间的工具库。它使得操作时间变得很简单。
前端GoGoGo
2018/08/24
4.4K0
Moment.js日期处理库的使用
Moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率。这个在一些金融保险公司会经常用到,比如一下时间的格式化处理,时间的选择等等。
孙叫兽
2021/12/20
5.4K0
Moment.js日期处理库的使用
Java8新特性之日期、时间操作
java.time包中的是类是不可变且线程安全的。新的时间及日期API位于java.time中,下面是一些关键类
Remember_Ray
2020/08/03
6.6K0
moment格式化时间使用方法
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>moment格式化时间使用方法</title> <!-- 脚本 --> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script> <!-- 语言包 --> <scr
越陌度阡
2020/11/26
2.3K0
moment格式化时间使用方法
Momentjs常用用法整理总汇
Moment.js 是一个 JavaScript 日期处理类库,用于解析、检验、操作、以及显示日期。对于前端开发者来说还是非常实用的,今天就整理一些 Moment.js 的常用用法,方便后期查阅:
德顺
2023/08/25
5050
Momentjs常用用法整理总汇
时间不等人,但 Moment.js 等你解决时间问题!
一直以来,处理时间和日期的JavaScript库,选用的都是Moment.js。它的API清晰简单,使用方便灵巧,功能还特别齐全。
程序视点
2023/05/25
1.6K0
时间不等人,但 Moment.js 等你解决时间问题!
Java常见日期格式及日期的计算工具类
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List;
一头小山猪
2020/06/15
4.3K0
相关推荐
Vue学习笔记之moment.js日期处理控件
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文