js 根据传入一个月份,获取到上一个月的月份
时间: 2024-09-27 13:11:39 浏览: 20
在JavaScript中,如果你想要获取给定月份前的一个月份,你可以通过减去1并考虑二月特殊情况(因为不是所有月份都有30天或31天)来实现。这里是一个简单的函数示例:
```javascript
function getPreviousMonth(month) {
// JavaScript的月份是从0开始计数的,所以需要加1
const monthsInYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
// 如果输入的是0(表示一月),则直接返回11(即上一年的十二月)
if (month === 0) {
return 11;
}
// 一般月份减1
const previousMonth = month - 1;
// 如果是二月,并且当前年份是闰年,则需要调整到上一年的一月
if (previousMonth === 1 && isLeapYear(new Date())) {
return 11;
} else {
return previousMonth;
}
function isLeapYear(date) {
// 这里只是一个简化版本的判断,实际应用中可能会更复杂,比如检查公历年份是否能被4整除但不能被100整除,或者能被400整除
return date.getFullYear() % 4 === 0 && (date.getFullYear() % 100 !== 0 || date.getFullYear() % 400 === 0);
}
}
// 使用示例
console.log(getPreviousMonth(6)); // 输出:5(六月的前一个月是五月)
```
这个函数首先定义了一个包含每个月天数的数组,然后检查是否是二月以及是否是闰年。如果满足条件,会适当调整月份。