自动格式化日期js

<script  type="text/javascript" language="javascript">
    isDataTime 
= function (e,obj) {
    
try{    
        
var key;
        
if ((document.all) ? true:false)
        {
            key 
= event.keyCode;
        }
        
else
        {
            key 
= e.which;
        }

        
if ( (key > 47&& (key < 58) )
        {
            
var otext = obj.value;                    //已有的值
            var keytext = String.fromCharCode(key);   //当前输入的值
            
            
//begin
            
               
if(otext.length == 3)    //
               {
                    
var val = otext + keytext;
                    
var t = parseInt(val);
                        
if(t >= 2050)
                         obj.value 
= " " + otext + "" + keytext;
                        
else
                         obj.value 
= otext + keytext + "";
                     
return false;
               }
               
else if(otext.length == 5//月的第一位
               {
                    
var val = keytext;
                    
var t = parseInt(val);
                    
if(t > 1)
                    {
                        obj.value 
= otext.substring(0,5+ "0" + keytext + "";
                        
return false;
                    }
               }
               
else if(otext.length == 6//月的第二位
               {
                    
var val = otext.substring(5,6+ keytext;
                    
var t = parseInt(val);
                    
if(t > 12)
                        obj.value 
= otext.substring(0,5+ "0" + otext.substring(5,6+ "" + keytext;
                    
else
                        obj.value 
= otext + keytext + "";
                    
return false;
               }
               
else if(otext.length == 8//日的第一位
               {
                    
var val = keytext;
                    
var t = parseInt(val);
                    
if(t > 3)
                    {
                        obj.value 
= otext.substring(0,8+ "0" + keytext + "日 ";
                        
return false;
                    }
               }
               
else if(otext.length == 9)//日的第二位
               {
                    
var val = otext.substring(8,9+ keytext;
                    
var t = parseInt(val);
                    
if(t > 31)
                        obj.value 
= otext.substring(0,8+ "0"  + otext.substring(8,9+ "日 " + keytext;
                    
else
                        obj.value 
= otext + keytext + "日 ";
                    
return false;
               }
               
else if(otext.length == 12//时的第一位
               {
                    
var val = keytext;
                    
var t = parseInt(val);
                    
if(t > 2)
                    {
                        obj.value 
= otext.substring(0,12+ "0" + keytext + "";
                        
return false;
                    }
               }
               
else if(otext.length == 13)//时的第二位
               {
                    
var val = otext.substring(12,13+ keytext;
                    
var t = parseInt(val);
                    
if(t >= 24)
                        obj.value 
= otext.substring(0,12+ "0" + otext.substring(12,13+ "" + keytext;
                    
else
                        obj.value 
= otext + keytext + "";
                    
return false;
               }
               
else if(otext.length == 15//分的第一位
               {
                    
var val = keytext;
                    
var t = parseInt(val);
                    
if(t > 5)
                    {
                        obj.value 
= otext.substring(0,15+ "0" + keytext + "";
                        
return false;
                    }
               }
               
else if(otext.length == 16)//
               {
                    
var val = otext.substring(15,16+ keytext;
                    
var t = parseInt(val);
                    
if(t > 59)
                        obj.value 
= otext.substring(0,15+ "0" + keytext + "";
                    
else
                        obj.value 
= otext + keytext + "";
                    
return false;
               }   
               
else if (otext.length > 17)
                    
return false;
               
else
               {
                    
return true;
               }                    
            
//end
         }
         
else if(key == 8)
         { 
            
return true;
         }
         
else
         {
            
return false;
         }
       }
       
catch(e)
       {
            alert(e);
       }
     }
</script>
<input style="width:160px;" onkeypress="javascript:return isDataTime(event,this);" />

 测试环境:IE 8, Firefox 3.5.2
posted on 2009-08-25 18:25  迷你软件  阅读(379)  评论(0编辑  收藏  举报

本网站绝大部分资源来源于Internet,本站所有作品版权归原创作者所有!!如有以下内容:章节错误、非法内容、作者署名出错、版权疑问、作品内容有违相关法律等请及时与我联系. 我将在第一时间做出响应!本站所有文章观点不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。