JavaScript判断输入的时间日期是否正确,并与指定时间进行比较

  今天,部门领导要对一个文本框输入的时间格式与大小与指定时间进行比较大小,输入时间格式为:2009-01-01 12:30,今天抽时间研究了一下,方法贴出来与大家分享。

 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckDateTimeDemo.aspx.cs" Inherits="CheckDateTimeDemo" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>JavaScript日期时间输入验证</title>
    <script language="javascript" type="text/javascript">
        function onkeyDateTime()
        {
            document.getElementById("msg").innerHTML="<font color=blue>日期格式:2009-9-1 13:30</font>";
        }
        function upkeyDateTime()
        {
            var reg = /^(\d{1,4})(-)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/;
            var str=document.getElementById("endDateTime").value;
            if(str!=""&&!reg.test(str))
            {
               document.getElementById("msg").innerHTML="填写有误,格式为:2009-9-1 13:30";
               return false;
            }
            else
            {
               var myYear,myMonth,myDate;
            var hours, minutes;
            var intHours, intMinutes;
            var today;
            var nowtimeString,nowdateString,inputdateString,inputtimeString;
           
            today = new Date();
            intHours = today.getHours();
            intMinutes = today.getMinutes();
            intSeconds = today.getSeconds();
  
            myYear = today.getYear();
            myMonth =today.getMonth() + 1;
            myDate =today.getDate();
           
            hours = intHours + ":";
  
            if (intMinutes < 10)
            {
             minutes = "0" + intMinutes;
            }
            else
            {
             minutes = intMinutes;
            }
            nowdateString = myYear + "-" + myMonth + "-"+ myDate +" " + hours + minutes;
            nowdateString = Date.parse(nowdateString.replace(/-/g,"/"));
           
            inputdateString=document.getElementById("endDateTime").value;
            inputdateString= Date.parse(inputdateString.replace(/-/g,"/"));
           
            if(inputdateString<nowdateString)
            {
               document.getElementById("msg").innerHTML="输入错误,不能小于当前日期";
               return false;
            }
            else
            {
               myDate=myDate + 2;
               nowdateString = myYear + "-" + myMonth + "-"+ myDate +" " + hours + minutes;
              
               nowdateString= Date.parse(nowdateString.replace(/-/g,"/"));
              
               if(inputdateString>nowdateString)
               {
                  document.getElementById("msg").innerHTML="输入错误,不能超过当前日期两天";
                  return false;
               }
            }
            }
            document.getElementById("msg").innerHTML="";
            return true;
        }
    </script>
    <style type="text/css">
        .style1
        {
            width: 57%;
            height: 61px;
        }
        .style2
        {
            width: 173px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <table cellpadding="0" cellspacing="0" class="style1">
            <tr>
                <td class="style2">
   
        <asp:TextBox ID="endDateTime" onfocus="onkeyDateTime();" onblur="upkeyDateTime();" runat="server"></asp:TextBox>
                </td>
                <td>
                    <div id="showreseult" style="font-family:宋体;font-size:12px; color:Red;">
              <span id="msg"></span>
        </div></td>
            </tr>
            <tr>
                <td class="style2">
                    &nbsp;</td>
                <td>
                    &nbsp;</td>
            </tr>
        </table>
        &nbsp;
                   
        </div>
    </form>
</body>
</html>

 

posted @ 2009-07-14 11:59  flyfesh  阅读(604)  评论(0编辑  收藏  举报