momentjs获取上周、上月、前三个月的起始和结束时间--直接copy结尾代码

moment.js的使用

moment文档地址

1、要获取当前的日期和时间,只需调用不带参数的 moment() 即可。

var now = moment();

这基本上与调用 moment(new Date()) 相同。

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

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

不同浏览器对字符串的解析格式会不一样,所以更换其他的浏览器可能会格式不一样。

如果知道输入字符串的格式,则可以使用它来解析 moment。

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

年份、月份、日期的令牌
令牌区分大小写。

输入 实例 描述
YYYY 2014 4 或 2 位数字的年份
YY 14 2 位数字的年份
YY 14 2 位数字的年份
Y -25 带有任意数字和符号的年份
Q 1…4 年份的季度。将月份设置为季度的第一个月
M MM 1…12 月份数字
MMM MMMM Jan…December 语言环境中的月份名称,由
D DD 1…31 月的某天
Do 1st…31st 月的某天,带序数
DDD DDDD 1…365 年的某天
X 1410715640.579 Unix 时间戳
x 1410715640579 Unix 毫秒时间戳

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");

获取上i周的周一到周日:

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();

获取前3个月的第一天和最后一天:

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();