moment.js 获取上周、上月及前三个月起止时间的完整代码示例

作者:半夏

时间:2026-10-30

浏览:167

本文介绍如何使用 moment.js 库获取当前日期、指定字符串格式日期,以及计算上周、上月和前三个月的起始与结束时间。通过 day()、week() 和 month() 方法,结合 startOf() 和 endOf(),提供完整的 JavaScript 代码示例,帮助开发者快速实现日期范围计算。

文章目录

使用 moment.js 库

moment 官方文档链接

1、调用无参的 moment() 可获取当前日期和时间。

var now = moment();

其效果等同于调用 moment(new Date())。

2、可通过传入字符串来创建时间对象

var day = moment("1995-12-25");

不同浏览器对字符串的解析格式存在差异,更换浏览器可能导致格式不一致。

若已知输入字符串的格式,则可使用该格式进行解析。

moment("12-25-1995", "MM-DD-YYYY");

用于表示年份、月份、日期的令牌

这些令牌区分大小写。

输入实例描述
YYYY20144 或 2 位数字的年份
YY142 位数字的年份
YY142 位数字的年份
Y-25带有任意数字和符号的年份
Q1…4年份的季度。将月份设置为季度的第一个月
MMM1…12 月份数字
MMM MMMMJan…December语言环境中的月份名称,由
D DD1…31月的某天
Do1st…31st月的某天,带序数
DDD DDDD1…365年的某天
X1410715640.579Unix 时间戳
x1410715640579Unix 毫秒时间戳

3、day() 方法

moment().day(Number|String);
moment().day(); // 数字
moment().days(Number|String);
moment().days(); // 数字

用于获取或设置星期几。

此方法可设置星期几,其中星期日对应 0、星期六对应 6。

若给定值在 0 到 6 之间,则结果日期将在当前周(星期日至星期六)内。

若超出该范围,则日期会溢出到其他周。

moment().day(-7); // 上个星期日 (0 - 7)
moment().day(0); // 这个星期日 (0)
moment().day(7); // 下个星期日 (0 + 7)
moment().day(10); // 下个星期三 (3 + 7)
moment().day(24); // 从现在起第 3 个星期三 (3 + 7 + 7 + 7)

moment().day() 用于获取今天对应的星期几数值

4、week() 方法

moment().week(Number);
moment().week(); // 数字
moment().weeks(Number);
moment().weeks(); // 数字

moment().week() 用于获取当前周是今年的第几周;moment().week(Number) 带参数时用于获取指定年份的第几周。

用于获取或设置年份中的星期数。

由于不同语言环境对年份中星期的编号定义不同,Moment.js 提供了 moment#week 以获取或设置年份的本地化星期。

年份的星期取决于哪一天是星期的第一天(如星期日、星期一),以及哪一周被视为年份的第一周。

例如,在美国,星期日是星期的第一天,且包含 1 月 1 日的星期被视为年份的第一周。

在法国,星期一是星期的第一天,且包含 1 月 4 日的星期被视为年份的第一周。

5、month() 方法

moment().month(Number|String);
moment().month(); // 数字
moment().months(Number|String);
moment().months(); // 数字

moment().month() 用于获取当前是今年的第几个月;moment().month(参数) 用于获取指定参数对应的今年第几个月

Number 类型表示月份数字,String 类型支持月份名称,例如

moment().month("January");

获取上周周一到周日的代码:

const startDate = moment().week(moment().week() - i).startOf('week').add(1,'days').valueOf();
const endDate = moment().week(moment().week() - i).endOf('week').add(1,'days').valueOf();

获取上月第一天和最后一天的代码:

const startDate = moment().month(moment().month() - 1).startOf('month').valueOf();
const endDate = moment().month(moment().month() - 1).endOf('month').valueOf();

获取前三个月第一天和最后一天的代码:

const startDate = moment().month(moment().month() - 3).startOf('month').valueOf();
const endDate = moment().month(moment().month() - 1).endOf('month').valueOf();

获取前 i 个月第一天和最后一天的代码:

const startDate = moment().month(moment().month() - i).startOf('month').valueOf();
const endDate = moment().month(moment().month() - 1).endOf('month').valueOf();

总结

到此关于 momentjs 获取上周、上月、前三个月起始和结束时间的文章介绍完毕,更多相关 momentjs 获取起始和结束时间内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章