/**
*擷取幾個月前的輸入日期
*{param:DateTime} date 輸入日期(YYYY-MM-DD)
*{param:number } monthNum 月數
*/
function GetPreMonthDay(date, monthNum) {
var dateArr = date.split('-');
var year = dateArr[0]; //擷取目前日期的年份
var month = dateArr[1]; //擷取目前日期的月份
var day = dateArr[2]; //擷取目前日期的日
var days = new Date(year, month, 0);
days = days.getDate(); //擷取目前日期中月的天數
var year2 = year;
var month2 = parseInt(month) - monthNum;
if (month2 <= 0) {
var absM = Math.abs(month2);
year2 = parseInt(year2) - Math.ceil(absM / 12 == 0 ? 1 : parseInt(absM) / 12);
month2 = 12 - (absM % 12);
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
}
/**
*擷取下一個月的輸入日期
*{param:DateTime} date 輸入日期(YYYY-MM-DD)
*{param:number } monthNum 月數
*/
function GetNextMonthDay(date, monthNum) {
var dateArr = date.split('-');
var year = dateArr[0]; //擷取目前日期的年份
var month = dateArr[1]; //擷取目前日期的月份
var day = dateArr[2]; //擷取目前日期的日
var days = new Date(year, month, 0);
days = days.getDate(); //擷取目前日期中的月的天數
var year2 = year;
var month2 = parseInt(month) + parseInt(monthNum);
if (month2 > 12) {
year2 = parseInt(year2) + parseInt((parseInt(month2) / 12 == 0 ? 1 : parseInt(month2) / 12));
month2 = parseInt(month2) % 12;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
}
/**
* 擷取AddDayCount天後的日期
* @param AddDayCount XX後 正整數 XX前 -正整數
* @returns {string}
* @constructor
*/
function GetDateStr(AddDayCount) {
const dd = new Date();
dd.setDate(dd.getDate()+AddDayCount);//擷取AddDayCount天後的日期
const y = dd.getFullYear();
const m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1);//擷取目前月份的日期,不足10補0
const d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();//擷取目前幾号,不足10補0
return y+"-"+m+"-"+d;
}
js如何擷取前幾個月或後幾個月時間 擷取目前時間的多少天前或者多少天後