刚写了一个,符不符合实际需求?<script language="javascript">
var curD = new Date();
var curM = curD.getMonth() + 1;
var curT = curD.getDate() + 1;
var minY = curD.getYear(); //生日只能从本年度开始
var maxY = minY + 80;
var arrMaxDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]function checkday(y, m, d){
var maxD = -1;
if (minY > y || maxY < y){
return ("Error! 年份不在区间内");
}
if (m < 1 || m > 12){
return ("Error! 月份不在区间内");
}else{
if (y == minY && m > curM){
return ("Error! 超过当前年月, 生日非法.");
}
} for (var i = 0 ; i < 12; i++){
if (m == (i + 1)){
if (i == 1) {
if (y % 4 == 0){
maxD = 29;
}else{
maxD = 28;
}
break;
}else{
maxD = arrMaxDay[i];
}
break;
}
}
if (d > maxD || d < 1){
return ("Error! 日期不在区间内");
}else{
if (y == minY && m == curM && d > curT){
return ("Error! 超过当前年月日, 生日非法.");
}
}
return (y + "-" + m + "-" + d);
}var y = 2007; //输入年
var m = 2; //输入月
var d = 29; //输入日
document.write (checkday(y, m, d));
</script>
var curD = new Date();
var curM = curD.getMonth() + 1;
var curT = curD.getDate() + 1;
var minY = curD.getYear(); //生日只能从本年度开始
var maxY = minY + 80;
var arrMaxDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]function checkday(y, m, d){
var maxD = -1;
if (minY > y || maxY < y){
return ("Error! 年份不在区间内");
}
if (m < 1 || m > 12){
return ("Error! 月份不在区间内");
}else{
if (y == minY && m > curM){
return ("Error! 超过当前年月, 生日非法.");
}
} for (var i = 0 ; i < 12; i++){
if (m == (i + 1)){
if (i == 1) {
if (y % 4 == 0){
maxD = 29;
}else{
maxD = 28;
}
break;
}else{
maxD = arrMaxDay[i];
}
break;
}
}
if (d > maxD || d < 1){
return ("Error! 日期不在区间内");
}else{
if (y == minY && m == curM && d > curT){
return ("Error! 超过当前年月日, 生日非法.");
}
}
return (y + "-" + m + "-" + d);
}var y = 2007; //输入年
var m = 2; //输入月
var d = 29; //输入日
document.write (checkday(y, m, d));
</script>
var minY = maxY - 80;
var curD = new Date();
var curM = curD.getMonth() + 1;
var curT = curD.getDate() + 1;
var maxY = curD.getYear(); //生日只能从本年度开始
var minY = maxY - 80;
var arrMaxDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]function checkday(y, m, d){
var maxD = -1;
if (minY > y || maxY < y){
return ("Error! 年份不在区间内");
}
if (m < 1 || m > 12){
return ("Error! 月份不在区间内");
}else{
if (y == maxY && m > curM){
return ("Error! 超过当前年月, 生日非法.");
}
} for (var i = 0 ; i < 12; i++){
if (m == (i + 1)){
if (i == 1) {
if (y % 4 == 0){
maxD = 29;
}else{
maxD = 28;
}
break;
}else{
maxD = arrMaxDay[i];
}
break;
}
}
if (d > maxD || d < 1){
return ("Error! 日期不在区间内");
}else{
if (y == maxY && m == curM && d > curT){
return ("Error! 超过当前年月日, 生日非法.");
}
}
return (y + "-" + m + "-" + d);
}var y = 2005; //输入年
var m = 2; //输入月
var d = 28; //输入日
document.write (checkday(y, m, d));
</script>