修改月周期,当月指当天所在的月周期

This commit is contained in:
2025-07-25 14:17:19 +08:00
parent 43e054c875
commit ce8e502697

72
main.js
View File

@@ -14755,24 +14755,62 @@
function getCustomMonthRange(monthsAgo) {
const now = new Date();
let year = now.getFullYear();
let month = now.getMonth() - monthsAgo;
while (month < 0) {
month += 12;
year--;
let month = now.getMonth();
let day = now.getDate();
// 如果今天是21号及以后当前周期是本月21到下月20
// 否则周期是上月21到本月20
if (day >= 21) {
month = month - monthsAgo;
let startYear = year, startMonth = month;
while (startMonth < 0) {
startMonth += 12;
startYear--;
}
let endYear = startYear, endMonth = startMonth + 1;
if (endMonth > 11) {
endMonth -= 12;
endYear++;
}
const firstDay = new Date(startYear, startMonth, 21);
const lastDay = new Date(endYear, endMonth, 20);
const formatLocal = (date) => {
return date.toLocaleDateString('en-CA', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\//g, '-');
};
return {
firstDay: formatLocal(firstDay),
lastDay: formatLocal(lastDay)
};
} else {
month = month - monthsAgo - 1;
let startYear = year, startMonth = month;
while (startMonth < 0) {
startMonth += 12;
startYear--;
}
let endYear = startYear, endMonth = startMonth + 1;
if (endMonth > 11) {
endMonth -= 12;
endYear++;
}
const firstDay = new Date(startYear, startMonth, 21);
const lastDay = new Date(endYear, endMonth, 20);
const formatLocal = (date) => {
return date.toLocaleDateString('en-CA', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\//g, '-');
};
return {
firstDay: formatLocal(firstDay),
lastDay: formatLocal(lastDay)
};
}
const firstDay = new Date(year, month - 1, 21);
const lastDay = new Date(year, month, 20);
const formatLocal = (date) => {
return date.toLocaleDateString('en-CA', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\//g, '-');
};
return {
firstDay: formatLocal(firstDay),
lastDay: formatLocal(lastDay)
};
}
// 创建菜单按钮