JavaScript example:onkeyup,规范日期格式 求日期间隔 非正则

关于keyCode值看 这里
1 日期格式
<HTML>
<HEAD>
<SCRIPT>
/**
* onkeyup 年月设置时间格式 
* onkeyup事件:键盘按下去,放松键盘就响应的事件
*/
function setDateFormat(obj){
   //关于keyCode值看这里

   //输入必须是数字,输入是字母的松开键盘的时候自动消失
   if(event.keyCode < 48 || (event.keyCode > 57 && event.keyCode < 96) || event.keyCode > 105){
   		if(obj.value!=''){
   			obj.value=obj.value.substr(0,obj.value.length-1);//按下字母,放松键盘自动消失,必须输入数字
   		}
   } 
   //输入的是数字
   else{
        //当输入的长度大于4,自动补上'-'
   		if(obj.value.length==4){
   			if(parseInt(obj.value)>=0000 && parseInt(obj.value)<9999){
   				obj.value=obj.value+"-";  //当输入的长度大于4,自动补上'-'
   			}else{ // 输入小于0000,提示年份错误
   				obj.value='';
   				alert(" 请输入正确的年份格式 ");
   			}
   		}
   		// 0 1 2 3 4  从4这个位置开始取,取一位  如果第4为不是'-'就把text置空
   		if(obj.value.length>4){
   			var d=obj.value.substr(4,1); 
   			if(d =="-"){
   			}else{
   				obj.value='';
   			}
   		}
   		
		//1900-X  如果第x位大于1小于或等于9,注意是23456789这些数字的时候,自动转化成02或03……
   		if(obj.value.length==6){
   			var a=obj.value.substr(5,1);
   			if(parseInt(a)>1&&parseInt(a)<=9){
   				obj.value=obj.value.substr(0,obj.value.length-1)+'0'+a;
   			}
   		}
		//如果输入1900-14 的话 14 > 12 --4会自动消失,输完7位之后就不能再输入了因为 maxlength="7"
   		if(obj.value.length==7){
   			var b=obj.value.substr(5,2);
   			if(parseInt(b)>12){
   					obj.value=obj.value.substr(0,6);
   			}else{
				obj.value=obj.value+"-";
   			}
   		}
		// 第八位必须是'-'
		if(obj.value.length>7){
   			var d=obj.value.substr(7,1); 
   			if(d =="-"){
   			}else{
   				obj.value='';
   			}
   		}

		if(obj.value.length==9){
   			var a=obj.value.substr(8,1);
   			if(parseInt(a)>3&&parseInt(a)<=31){
   				obj.value=obj.value.substr(0,obj.value.length-1)+'0'+a;
   			}
   		}

		if(obj.value.length==10){
   			var b=obj.value.substr(8,2);
   			if(parseInt(b)>31){
   					obj.value=obj.value.substr(0,9);
   			}else{
				obj.blur();
   			}
   		}


   }
}
function mess(a) {
	alert(a);
}
</SCRIPT>
</HEAD>
<BODY>
	
	<input  id="fstRegDte"  maxlength="10"
          onkeyup="setDateFormat(this);" onblur ="mess('成功');"
          /><font color="#ff0000">&nbsp;格式1900-01</font>
</BODY>
</HTML>



2 日期间隔
从页面上取到日期的字符串,算出日期间隔
function interval(date1, date2) { 
    var begin = date1.value;
    var end = date2.value;
    var b = begin.split("-");
    var d1 = new Date(b[0], parseInt(b[1], 10) - 1, b[2]);
    var c = end.split("-");
    var d2 = new Date(c[0], parseInt(c[1], 10) - 1, c[2]);
    if (d2.getTime() - d1.getTime() < 0) {
       alert("起止日期不能大于结束止期。");
       return false;
    }
    var result = new Date(d2.getTime() - d1.getTime());
    var d = parseInt(result.getTime() / 1000 / 3600 / 24, 10);
    if (d >= 365) {
        alert("结束日期大于起止日期。");
        return false;
    } else {
        return true;
    }
}

你可能感兴趣的:(JavaScript,C++,c,C#)