salary-management-front/pc4mobx/hrmSalary/util/date.js

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 };
};