从当前日期到3年前的Javascript日期验证

从当前日期到3年前的Javascript日期验证,javascript,validation,Javascript,Validation,我是javascript新手,请求帮助。我的页面上有两个开始日期和结束日期。如果用户选择当前日期前3年作为开始日期,选择当前日期后3年作为结束日期,我想通过javascript抛出一个验证错误 我该怎么处理?我试了以下方法 var a1 = Date.parse(startDate); var b1 = Date.parse(endDate); var mydate=new Date(); var c1 = Date.parse(mydate); var diff1 = c1-a

我是javascript新手,请求帮助。我的页面上有两个开始日期和结束日期。如果用户选择当前日期前3年作为开始日期,选择当前日期后3年作为结束日期,我想通过javascript抛出一个验证错误

我该怎么处理?我试了以下方法

var a1 = Date.parse(startDate);
var b1 = Date.parse(endDate);
var mydate=new Date();    
var c1 = Date.parse(mydate);    
var diff1 = c1-a1;
var daysCal1 = diff1 / 1000 / 60 / 60 / 24;
var days1 = Math.ceil(daysCal1);
if (days1 > 1095) {         
      //throw the exception

}   

好的,假设您已将开始日期存储为a1,将结束日期存储为b1,则可以使用日期对象的*.valueOf()进行比较(请参阅)

所以你可以做一些事情,大致如下:

var currentDate = new Date();
var currentMinus = currentDate.valueOf()-(3*365.25*24*60*60*1000); //or use +94672800000 
var currentPlus = current.Date.valueOf()+94672800000;
if (a1.valueOf() < currentMinus) {
    //should execute if a1 is more than 3 years prior to current date/time
}
if (b1.valueOf() > currentPlus) {
    //should execute if b1 is more than 3 years after current date/time
}
var currentDate=新日期();
var current减号=currentDate.valueOf()-(3*365.25*24*60*60*1000)//或使用+94672800000
var currentPlus=current.Date.valueOf()+94672800000;
if(a1.valueOf()currentPlus){
//如果b1在当前日期/时间后超过3年,则应执行
}

我没有按原样测试所有这些,但应该对您有用,或者至少给您在您自己的代码/情况中使用的概念

抛出异常的确切含义是什么?。您的逻辑是问题所在(diff no计算正确)还是您正在询问如何显示错误?。如果是第二个选项,请共享您的DOM结构(HTML)