NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/xe-utils/methods/date/getWhatMonth.js
2023-09-14 14:47:11 +08:00

40 lines
1.3 KiB
Java

var staticStrFirst = require('../static/staticStrFirst')
var staticStrLast = require('../static/staticStrLast')
var helperGetDateFullYear = require('./helperGetDateFullYear')
var helperGetDateTime = require('./helperGetDateTime')
var helperGetDateMonth = require('./helperGetDateMonth')
var toStringDate = require('./toStringDate')
var isDate = require('../base/isDate')
/**
* 返回前几月或后几月的日期
*
* @param {Date} date 日期或数字
* @param {Number} month 月(默认当前月)、前几个月、后几个月
* @param {Number/String} day 获取哪天(null默认当前天)、月初(first)、月末(last)、指定天数(数值)
* @return {Date}
*/
function getWhatMonth (date, month, day) {
var monthOffset = month && !isNaN(month) ? month : 0
date = toStringDate(date)
if (isDate(date)) {
if (day || !isNaN(day)) {
if (day === staticStrFirst) {
return new Date(helperGetDateFullYear(date), helperGetDateMonth(date) + monthOffset, 1)
} else if (day === staticStrLast) {
return new Date(helperGetDateTime(getWhatMonth(date, monthOffset + 1, staticStrFirst)) - 1)
} else {
date.setDate(day)
}
}
if (monthOffset) {
date.setMonth(helperGetDateMonth(date) + monthOffset)
}
}
return date
}
module.exports = getWhatMonth