javascript 代码
/// 检查输入的日期是否是一个正确的日期格式:
/// 支持 yyyy-m-d、yyyy-mm-dd、yyyy/m/d、yyyy/mm/dd 四种输入格式。
function checkdate(strinputdate) {
// 定义一个月份天数常量数组
var da = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
// 统一日期格式
strdate = strinputdate.replace(/-/g, /);
//判断日期是否是预期的格式
if (strdate.indexof(/) == -1) {
alert(请输入 yyyy-m-d、yyyy-mm-dd、yyyy/m/d、yyyy/mm/dd 格式。)
return false;
}
// 分解出年月日
arrd = strdate.split(/);
if (arrd.length != 3) return false;
y = parseint(arrd[0], 10);
m = parseint(arrd[1], 10);
d = parseint(arrd[2], 10);
//判断年月日是否是数字
if (isnan(y) || isnan(m) || isnan(d)) return false;
// 判断月份是否在1-12之间
if (m > 12 || m < 1) return false;
//判断是否是闰年
if (isloopyear(y)) da[2] = 29;
//判断输入的日是否超过了当月月份的总天数。
if (d > da[m]) return false;
//各种条件都验证了,则应该是一个合法的日期了。
// 如果要对日期进行一次格式化,则可以在这里进行处理了,下面格式化成数据库识别的日期格式 yyyy-mm-dd
// str = y + - + (m<10?0:) + m + - + (d<10?0:) + d;
str = y + - + (m < 10 ? 0 : ) + m + - + (d < 10 ? 0 : ) + d;
alert(str)
return true;
}
function isloopyear(theyear) {
return (new date(theyear, 1, 29).getdate() == 29);
}
//方法二:
/// 检查输入的日期是否是一个正确的日期格式:
/// 支持 yyyy-m-d、yyyy-mm-dd、yyyy/m/d、yyyy/mm/dd 四种输入格式。
function checkdate2(strinputdate) {
if (strinputdate == ) return false;
strinputdate = strinputdate.replace(/-/g, /);
var d = new date(strinputdate);
if (isnan(d)) return false;
var arr = strinputdate.split(/);
return ((parseint(arr[0], 10) == d.getfullyear()) && (parseint(arr[1], 10) == (d.getmonth() + 1)) && (parseint(arr[2], 10) == d.getdate()));
}