您好,欢迎访问一九零五行业门户网

JavaScript 判断输入的日期是否是合法日期的两种方法

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()));
}
其它类似信息

推荐信息