moment.js获取当前上个月的年月日
时间: 2025-05-16 12:01:19 浏览: 24
### 使用 Moment.js 获取上一个月的具体日期
可以通过 `moment` 的方法来获取上一个月的年份、月份以及每一天的日历数据。以下是实现这一功能的方法:
#### 1. 获取当前时间并减去一个月
可以利用 `subtract()` 方法从当前时间中减去一个月,从而得到上个月的时间对象。
```javascript
const lastMonthDate = moment().subtract(1, 'month');
console.log(lastMonthDate.format('YYYY-MM')); // 输出上个月的年月
```
此代码片段展示了如何获得上个月的年份和月份[^2]。
#### 2. 提取上个月的第一天和最后一天
为了进一步处理整个月份的数据,需要分别提取该月的第一天和最后一天。
```javascript
// 上个月第一天
const firstDayOfLastMonth = lastMonthDate.clone().startOf('month');
// 上个月最后一天
const lastDayOfLastMonth = lastMonthDate.clone().endOf('month');
console.log(firstDayOfLastMonth.format('YYYY-MM-DD')); // 输出上个月第一天
console.log(lastDayOfLastMonth.format('YYYY-MM-DD')); // 输出上个月最后一天
```
上述代码通过调用 `startOf('month')` 和 `endOf('month')` 来计算目标月份范围内的起始与结束日期[^4]。
#### 3. 构建完整的日期数组
如果希望生成一个包含上个月每天具体日期的数组,则可采用如下方式循环构建:
```javascript
function getLastMonthDays() {
const result = [];
let currentDate = firstDayOfLastMonth.clone();
while (currentDate.isSameOrBefore(lastDayOfLastMonth)) {
result.push(currentDate.format('YYYY-MM-DD'));
currentDate.add(1, 'day');
}
return result;
}
const daysInLastMonth = getLastMonthDays();
console.log(daysInLastMonth); // 打印出上个月每日的完整日期列表
```
这段逻辑基于逐步增加单日的方式填充结果集直至达到月末为止[^1]。
---
### 总结说明
以上介绍了三种主要操作:先定义基础时间为上一周期;接着明确边界条件即月初至月底;最终遍历期间形成连续序列。这些步骤共同构成了精确求解所需信息的过程,并充分利用了Moment.js强大的API支持完成任务需求。
阅读全文
相关推荐


















