javascript关于查询时间范围判断

enabledate表单为查询的起始时间,expiredate为表单查询的截止时间,下面代码是客户端验证代码,有以下几个方面的问题:
1.起始时间表单enabledate输入错误日期格式时,提示[添加日期起始日期格式错误];起始时间表单输入正确日期格式,而截止时间表单expiredate输入错误日期格式时整个网页就不显示了.
2.我想在选择起始时间大于截止时间时提示[添加日期范围错误],可现在输入错误了也不提示.
那位高手帮忙解决一下,谢谢!

<script language=javascript>
var whitespace = " \t\n\r";

function IsWhitespace (s)
{
var i;
if (IsEmpty(s)) return true;

for (i = 0; i < s.length; i++)
{
var c = s.charAt(i);
if (whitespace.indexOf(c) == -1) return false;
}
return true;
}

function IsEmpty(s)
{
return ((s == null) || (s.length == 0))
}

function IsDate(fDate)
{

var arrDaysInMonth=new Array(12);
arrDaysInMonth[1]=31;
arrDaysInMonth[2]=29;
arrDaysInMonth[3]=31;
arrDaysInMonth[4]=30;
arrDaysInMonth[5]=31;
arrDaysInMonth[6]=30;
arrDaysInMonth[7]=31;
arrDaysInMonth[8]=31;
arrDaysInMonth[9]=30;
arrDaysInMonth[10]=31;
arrDaysInMonth[11]=30;
arrDaysInMonth[12]=31;

if (IsEmpty(fDate))
return true

var NameList=fDate.split("-");
if (NameList.length!=3)
return false

if (!(IsYear(NameList[0]) && IsMonth(NameList[1]) && IsDay(NameList[2])) )
return false

if ( NameList[1]>arrDaysInMonth[NameList[1]] )
return false

if ( (NameList[1]==2) && (NameList[2]>DaysInFebruary(NameList[0]) ) )
return false

return true

}

function search()
{
var xmmc = document.forms['frmdata'].elements['xmmc'].value;
var cbdw = document.forms['frmdata'].elements['cbdw'].value;
var sgdz = document.forms['frmdata'].elements['sgdz'].value;
var enabledate = document.forms['frmdata'].elements['enabledate'].value;
var expiredate = document.forms['frmdata'].elements['expiredate'].value;

if (!IsWhitespace(enabledate))
{
if (!IsDate(enabledate))
{
alert("添加日期起始日期格式错误!");
return false;
}
}

if (!IsWhitespace(expiredate))
{
if (!IsDate(expiredate))
{
alert("添加日期截止日期格式错误!");
return false;
}
}

var allNotEmpty = (!IsWhitespace(xmmc)) ||
(!IsWhitespace(cbdw)) ||
(!IsWhitespace(sgdz)) ||
(!IsWhitespace(enabledate)) ||
(!IsWhitespace(expiredate));

if (!allNotEmpty)
{
alert("必需输入一个搜索条件");
return false;
}
if ((!IsWhitespace(enabledate)) && (!IsWhitespace(expiredate)))
{
if (enabledate>expiredate)
{
alert("添加日期范围错误");
return false;
}
}
}
</script>
全部代码因为太多了,baidu不让发,全部代码地址在:
http://www.bj-mcc.com/search.txt
看了这四位的回答,都不行,那位高手给个能用的,在原<script language=javascript> </script>修改谢谢帮忙!

第1个回答  2008-10-21
Line 129 : if (enabledate>expiredate)
时间不能这么比较
最简单的方法,先比年份
然后拿 月份,日期

比方说,我们有
year1,day1,month1 开始日期
year2,day2,month2 结束日期 也可是你的namelist[0-2]

if (year1>year2)
return false;
else if (year1<year2)
return true;
else
if month1>month2
return false;
else if month1<month2
return true;
else{
if day1>day2
return false;
else if day1>day2
return true;
else
false; // 走到这里说明是同一天
第2个回答  2008-10-21
日期比较函数

//判断日期大小
function compareDate(date1,date2)
{
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ('-'));

var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'));

var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000);
var i = Math.abs(cha);
if(i >0)
{
alert("起始大于截止");
return false;
}
if(i==0)
{
alert("起始等于截止");
return false;
}

return true;

}

替换你的if (enabledate>expiredate)
第3个回答  推荐于2020-12-01
http://download.csdn.net/source/617292
下载:日期控件My97DatePicker这个很好用.本回答被提问者采纳
第4个回答  2008-10-22
asp啊,我不会,如果是jsp还行
第5个回答  2008-10-22
请使用firebug~

javascript关于查询时间范围判断
最简单的方法,先比年份 然后拿 月份,日期 比方说,我们有 year1,day1,month1 开始日期 year2,day2,month2 结束日期 也可是你的namelist[0-2]if (year1>year2)return false;else if (year1<year2)return true;else if month1>month2 return false;else if month1<month2 return true;else{...

javascript中怎样判断一个时间是否在一个时间段内
js 判断当前时间(或者所选时间)是否在某一时间范围 传入 beginDateStr (开始时间), endDateStr(结束时间)使用方法如下 date.isDuringDate('2018\/09\/17', '2030\/09\/17');\/\/ 当前时间是否在2018\/09\/17 - 2030\/09\/17 之间,输出 true date.isDuringDate('2018\/09\/17 13:00', '2019\/0...

jquery 判断当前时间是否在时间范围内
js 判断当前时间(或者所选时间)是否在某一时间段 我们可以使用 jutils - JavaScript常用函数库的 isDuringDate 函数来实现 传入 beginDateStr (开始时间), endDateStr(结束时间)使用方法:jutils.isDuringDate('2018\/09\/17', '2030\/09\/17');\/\/ 当前时间是否在2018\/09\/17 - 2030\/09\/17 之间...

怎样通过JS来判断时间
var ms = new Date();var year = ms.getFullYear(); \/\/ 获取年var month = ms.getMonth(); \/\/ 获取月 (0 ~ 11)var date = ms.getDate(); \/\/ 获取日 (1 ~ 31)var day = ms.getDay(); \/\/ 获取周 (0 ~ 6)var hour = ms.getHours(); \/\/ 获取时 (0 ~ 23)var minut...

javascript 如果判断时间是24小时制还是12小时制
if(time>=12){ time = time - 12;if(time >=0 && time < 6){ alert("下午");} else if(time >=6 && time <=12){ alert("晚上");} } else { if(time >=0 && time < 6){ alert("凌晨");} else if(time >=6 && time <=12){ alert("上午");} } ...

用JavaScript判断某个时间距离现在是几秒或几分或几小时等等的效果_百 ...
从服务器后台取到的才是准确的时间. <!-- var d1 = new Date();d1.setYear(2009);\/\/2009取自服务器端 d1.setMonth(3);\/\/3取自服务器端 d1.setDate(26);\/\/26取自服务器 var t1 = d1.getTime();var t2 = new Date().getTime();var oneDay = 1000*60*60*24;\/\/一天的毫秒...

急~~~ Javascript中用于时间检验的正则式是什么?
看我的例子:将在屏幕中弹出一个输入框, 输入一个时间值,对输入的时间值是否合法时行判断 var pattern = \/^([0-1][0-9]|2[0-4]):[0-5][0-9]$\/;var input = prompt("请输入一个时间:", "00:00");alert(pattern.test(input) ? "你输入的是合法的时间" : "你输入的时间不合...

网页上不断监听当前时间,然后判断时间段的js代码要怎么写?
写一个定时器就好了,window.setInterval(function () { }, 1000);每一秒执行一次function(){}

javascript校验时间
正则表达式,最方便了!if(f.startTime.value!=''&&!\/^[1|2]\\d{3}-[0|1][0-2]-[1-3]\\d$\/.test(f.startTime.value)){err += '开始时间填写有误,正确的格式为[yyyy-mm-dd]\\r\\n';}

我要用JS写个判断时间的操作 就是去判断今天是否过了 ,用系统时间去和...
给你个判断时间差的函数 就可以搞定了 字符串传Date param {} string 如:"2009-06-22 09:41:30"return {} 如:Mon Jun 22 09:41:30 UTC+0800 2009 \/ function StringToDate(string){ return new Date(Date.parse(string.replace(\/-\/g, "\/")));} \/ 计算两日期时间差 param {} ...

相似回答
大家正在搜