思路:先获取当前时间(年月日),再判断当前月份的下一个月是多少天 。
注意:(1)js中 getMonth() 返回值是0(一月)到11(十二月)之间的一个整数;
(2)当getMonth()返回的值是11(12月),则它的下一个月为次年1月;
(3) 当getMonth()返回的值是0(1月),则它的下一个月为2月,应判断是否为闰年。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>时间显示为次月月底</title>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
</head>
<body>
<div>
<input type="text" id="time"/>
</div>
<script>
function nextMonthLastDay() {//日期显示为次月最后一天
var time = new Date();
var year = time.getFullYear();
//var year = 1900; //用于测试
var month = time.getMonth() + 2;
//var month = 0 + 2; //用于测试
if (month > 12) {
month = month - 12;
year = year + 1;
}
var day = nextMonthDay(year, month);
return year + '-' + month + '-' + day;
}
function nextMonthDay(year, month) {//判断每月多少天
var day31 = [1, 3, 5, 7, 8, 10, 12];
var day30 = [4, 6, 9, 11];
if (day31.indexOf(month) > -1) {
return 31;
} else if (day30.indexOf(month) > -1) {
return 30;
} else {
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
}
}
function isLeapYear(year) {//判断是否为闰年
return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
}
$("#time").val(nextMonthLastDay());
</script>
</body>
</html>