今天作一个年限处理模块,要用到时期并且需求还不让调到日历小程序,必须手写进去对其判断.以前也作过几次这样的但没有保存下来,今天又来了个这,在网上没有查找到现成的就只好自己重写.唉,天天作重复的工作.今天干脆自己写上来,以防以后会再次用到.
========================================================
<html>
<head>
<title>date</title>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
</head>
<body>
<script language=JavaScript type=text/JavaScript>
function chkdate(parm){
var flag=false;
var date1=parm.split("-");
var year=date1[0]+"";
var month=date1[1]+"";
var days=date1[2]+"";
var yearvalue=parseInt(year,10);
var monthvalue=parseInt(month,10);
var dayvalue=parseInt(days,10);
if(isNaN(yearvalue)||isNaN(monthvalue)||isNaN(dayvalue)){
alert("对不起,时期出现了非法字符!");
return false;
}else{
if(yearvalue==0||monthvalue==0||dayvalue==0){
alert("对不起,年,月,日不可以为零!");
return false;
}
}
if(year.length!=4 || month.length!=2 || days.length!=2){
alert("时期格式不正确,正确格式如:2004-02-23 !");
return false;
}
flag=strDateTime(parm);
if(!flag){
alert("对不起,日期不合法!");
return false;
}
return true;
}
function ch(){
var tom=document.form1.tom.value;
var flag=chkdate(tom);
if(flag){
alert("成功,合法的日期!");
}else{
document.form1.tom.value="";
document.form1.tom.focus();
}
}
function strDateTime(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
</script>
<form method=POST action=02.asp language=JavaScript name=form1 >
<font color=red><b>测试小程序</b></font><hr>
请输入日期:<input type=text name=tom >
<input type=button name=Button1 value="单击判断时期是否正确" onclick=ch()>
</form>
</body>
</html>
===================================================
其它相关:
<script type="text/javascript">
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
function chkdate(parm){
var flag=false;
var date1=parm.split("-");
var year=date1[0]+"";
var month=date1[1]+"";
var days=date1[2]+"";
var yearvalue=parseInt(year,10);
var monthvalue=parseInt(month,10);
var dayvalue=parseInt(days,10);
if(isNaN(yearvalue)||isNaN(monthvalue)||isNaN(dayvalue)){
alert("对不起,时期出现了非法字符!");
return false;
}else{
if(yearvalue==0||monthvalue==0||dayvalue==0){
alert("对不起,年,月,日不可以为零!");
return false;
}
}
if(year.length!=4 || month.length!=2 || days.length!=2){
alert("时期格式不正确,正确格式如:2004-02-23 !");
return false;
}
flag=strDateTime(parm);
if(!flag){
alert("对不起,日期不合法!");
return false;
}
return true;
}
function yearLen(startTime,endTime){
var years=0;
var endDateSplit = endTime.split("-");
var startDateSplit = startTime.split("-");
var endDate = new Date(endDateSplit[1] + '-' + endDateSplit[2] + '-' + endDateSplit[0]); //结束日期
var startDate = new Date(startDateSplit[1] + '-' + startDateSplit[2] + '-' + startDateSplit[0]); //开始日期
if(endDate<=startDate) {
return -1;
}
years=parseInt(endDateSplit[0])-parseInt(startDateSplit[0]);
return years;
}
//计算天数差的函数,通用
function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式
var aDate, oDate1, oDate2, iDays;
aDate = sDate1.split("-");
oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]); //转换为12-18-2002格式
aDate = sDate2.split("-");
oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24); //把相差的毫秒数转换为天数
return iDays;
}
function strDateTime(str)
{
var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
function check(){
var startTime=document.form1.serviceStartDate.value;
var endTime=document.form1.serviceEndDate.value;
startTime=startTime.trim();
endTime=endTime.trim();
if(startTime==null||startTime==""){
alert("请输入起始时间!");
document.form1.serviceStartDate.focus();
return false;
}else{
var judge=chkdate(startTime);
if(!judge){
document.form1.serviceStartDate.value="";
document.form1.serviceStartDate.focus();
return false;
}
}
if(endTime==null||endTime==""){
alert("请输入终止时间!");
document.form1.serviceStartDate.focus();
return false;
}else{
var judge=chkdate(endTime);
if(!judge){
document.form1.serviceEndDate.value="";
document.form1.serviceEndDate.focus();
return false;
}
}
var year1=parseInt(yearLen(startTime,endTime));
if(year1==-1){
alert("'终止日期'必须大于'起始日期'!");
document.form1.serviceEndDate.value="";
document.form1.serviceEndDate.focus();
return false;
}
var year2=parseInt(document.form1.yearNum.value);
if(year1!=year2){
alert("对不起,服务起止时间跟服务年限不符!");
return false;
}
document.form1.ok.disabled=true;
document.form1.submit();
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
</script>
发表于 @ 2009年03月13日 16:17:00 | 评论( loading... ) | 举报| 收藏