90 lines
2.4 KiB
JavaScript
90 lines
2.4 KiB
JavaScript
import moment from "moment";
|
|
import { WeaLocaleProvider } from "ecCom";
|
|
|
|
const getLabel = WeaLocaleProvider.getLabel;
|
|
|
|
// 获取当前年月
|
|
export const getCurrentYearMonth = () => {
|
|
return moment(new Date()).format("YYYY-MM");
|
|
};
|
|
|
|
// 获取当前月份
|
|
export const getCurrentMonth = () => {
|
|
return (new Date()).getMonth() + 1;
|
|
};
|
|
|
|
// 获取前几个月的年月
|
|
export const getSubtractMonthYearMonth = (subtract = 1) => {
|
|
return moment(new Date()).subtract(subtract, "months").startOf("month").format("YYYY-MM");
|
|
};
|
|
|
|
// 获取后几个月的年月
|
|
export const getAddMonthYearMonth = (add = 1) => {
|
|
return moment(new Date()).add(add, "months").startOf("month").format("YYYY-MM");
|
|
};
|
|
/**
|
|
* 数字前面补零
|
|
* @param num
|
|
* @param length
|
|
*/
|
|
export const prefixAddZero = (num, length) => {
|
|
return (Array(length).join("0") + num).slice(-length);
|
|
};
|
|
/**
|
|
* 获取月份天数
|
|
* @param year
|
|
* @param month
|
|
*/
|
|
export const getMonthDays = (year, month) => {
|
|
const d = new Date(Number(year), Number(month), 0);
|
|
return d.getDate();
|
|
};
|
|
|
|
export const generateBasicInfo = (monthCal, nowYear, nowMonth) => {
|
|
let nowMonthStr = "", nextMonthStr = "";
|
|
switch (monthCal) {
|
|
case -2:
|
|
nowMonthStr = getLabel(111, "上上月");
|
|
nextMonthStr = getLabel(111, "上月");
|
|
break;
|
|
case -1:
|
|
nowMonthStr = getLabel(111, "上月");
|
|
nextMonthStr = getLabel(111, "本月");
|
|
break;
|
|
case 0:
|
|
nowMonthStr = getLabel(111, "本月");
|
|
nextMonthStr = getLabel(111, "下月");
|
|
break;
|
|
case 1:
|
|
nowMonthStr = getLabel(111, "下月");
|
|
nextMonthStr = getLabel(111, "下下月");
|
|
break;
|
|
}
|
|
|
|
let year, month;
|
|
if (monthCal < 0) {
|
|
let monthCalAbs = Math.abs(monthCal);
|
|
if (nowMonth <= monthCalAbs) {
|
|
// 跨年
|
|
year = (nowYear - 1).toString();
|
|
month = (12 - (monthCalAbs - nowMonth)).toString();
|
|
} else {
|
|
// 未跨年
|
|
year = nowYear.toString();
|
|
month = (nowMonth - monthCalAbs).toString();
|
|
}
|
|
} else if (monthCal === 0) {
|
|
year = nowYear.toString();
|
|
month = nowMonth.toString();
|
|
} else {
|
|
if (nowMonth + monthCal > 12) {
|
|
year = (nowYear + 1).toString();
|
|
month = (nowMonth + monthCal - 12).toString();
|
|
} else {
|
|
year = nowYear.toString();
|
|
month = (nowMonth + monthCal).toString();
|
|
}
|
|
}
|
|
return { year, month, nowMonthStr, nextMonthStr };
|
|
};
|