May 13

验证日期和时间格式合法性的js脚本,支持格式yyyy-mm-dd[ hh:mm:ss] 不指定

ljh , 23:14 , 利剑之辉的快乐生活 , 评论(0) , 引用(0) , 阅读(1334) , Via 本站原创 | |
今天需要一个验证日期和时间格式的js脚本,到网上搜集并修改调整后,使用正常,记录如下,如有问题日后再更新补充,如有朋友需要尽管使用,如有问题请在此跟帖。


function isDate(oDateTime)
{
  //对日期格式进行验证,要求为2000-2099年 格式为yyyy-mm-dd[ hh:mm:ss] 并且可以正常转换成正确的日期
  var pat_hd=/^(20\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))){1}((\s\d{2}:\d{2})|(\s\d{2}:\d{2}:\d{2}))?$/;
  try{
    if(!pat_hd.test(oDateTime)) throw "日期非法!";
    var arr_dt=oDateTime.split(" ");
    if(arr_dt[0]== "")   throw   "日期非法!";
    var oDate=arr_dt[0];
    var arr_hd=oDate.split("-");
    var dateTmp;
    dateTmp= new Date(arr_hd[0],parseFloat(arr_hd[1])-1,parseFloat(arr_hd[2]));
  if(dateTmp.getFullYear()!=parseFloat(arr_hd[0]) || dateTmp.getMonth()!=parseFloat(arr_hd[1]) -1 || dateTmp.getDate()!=parseFloat(arr_hd[2])) throw   "日期非法! ";
  if(arr_dt[1]!=null && arr_dt[1]!= "")
    {
      var oTime=arr_dt[1];
      var arr_ht=oTime.split(":");
      if (arr_ht[2]!=null)
        dateTmp.setHours(arr_ht[0],arr_ht[1],arr_ht[2]);
      else dateTmp.setHours(arr_ht[0],arr_ht[1]);
      if(dateTmp.getHours()!=parseFloat(arr_ht[0]) || dateTmp.getMinutes()!=parseFloat(arr_ht[1])) throw "日期非法!";
      if (arr_ht[2]!=null&&dateTmp.getSeconds()!=parseFloat(arr_ht[2]))  throw "日期非法!";
    }
  }
  catch(ex)
  {
    return false;
  }
  return   true;
}

Tags:
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]