時間選擇 月最後一天,選擇3/6/12個月
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
<script>
function getMonthLastDay(year,month) {
var new_year = year; //取當前的年份
var new_month = month++;//取下一個月的第一天,方便計算(最後一天不固定)
if(month>12) //若是當前大於12月,則年份轉到下一年
{
new_month -=12; //月份減
new_year++; //年份增
}
var new_date = new Date(new_year,new_month,1); //取當年當月中的第一天
return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//獲取當月最後一天日期
}
// var startVal = $('[name="startDate"]').val(now.format('yyyy-MM-dd'));
function getEndDate(MonthType) {
// var d = new Date();
//12月
// var d = new Date('2017/01/01');
// var d = new Date('2017/01/31');
// var d = new Date('2017/12/01');
var d = new Date('2019/12/30');
// var d = new Date('2019/12/31');
// var d = new Date('2018/11/30');
// var d = new Date('2018/12/30');
// var d = new Date('2018/12/31');
// var d = new Date('2019/01/31');
// var d = new Date('2019/03/01');
// var d = new Date('2020/03/01');
// var d = new Date('2020/01/31');
// var d = new Date('2020/01/01');
// var d = new Date('2020/02/01');
// var d = new Date('2020/12/01');
//6月
// var d = new Date('2017/01/01');
// var d = new Date('2017/01/31');
// var d = new Date('2017/06/01');
// var d = new Date('2017/06/30');
// var d = new Date('2017/07/01');
// var d = new Date('2017/07/02');
// var d = new Date('2020/01/01');
// var d = new Date('2020/02/01');
// var d = new Date('2020/12/01');
//季度
// var d = new Date('2017/07/31');
// var d = new Date('2017/07/01');
// var d = new Date('2017/02/01');
// var d = new Date('2019/01/31');
// var d = new Date('2019/03/01');
// var d = new Date('2020/03/01');
// var d = new Date('2020/01/31');
var gm = d.getMonth() + 1 + MonthType ;
var gd = d.getDate() - 1;
var newDate = new Date(d.getFullYear(),gm - 1,gd);
var tarGm = gm>12 ? gm-12 : gm; //預期月份
if(gm==13&&gd==0){ // 這裏主要涉及到跨年,而且日期爲00 ,月份會向預期前一年最後一月,年份會向預期前一年,如2020.01.01 --》 2020.12.31的狀況處理
tarGm += 12;
}
if(newDate.getMonth() + 1 > tarGm){
newDate = new Date(newDate.getFullYear(),gm%12-1,getMonthLastDay(newDate.getFullYear(),gm%12));
}
console.log(newDate)
}
// getEndDate(3);
// getEndDate(6);
getEndDate(12);
</script>
</html>