//日期比较函数,参数date:为Date类型,如this日期晚于参数:1,相等:0 早于: -1
Date.prototype.dateCompare = function(date){
if(typeof(date) != "object" || !(/Date/.test(date.constructor)))
 throw new Error(-1,"dateCompare(date)的date参数为Date类型.");
var d = this.getTime() - date.getTime();
return d>0?1:(d==0?0:-1);
}/*功能:返回两日期之差
 *参数:pd   PowerDate对象
 *    type: 返回类别标识.yy:年,mm:月,ww:周,dd:日,hh:小时,mi:分,ss:秒,ms:毫秒
 *    intOrFloat :返回整型还是浮点型值 0:整型,不等于0:浮点型
 *    output : 输出提示,如:时间差为#周!
 */
Date.prototype.calDateDistance = function (date,type,intOrFloat,output){
if(typeof(date) != "object" || !(/Date/.test(date.constructor)))
 throw new Error(-1,"calDateDistance(date,type,intOrFloat)的date参数为Date类型.");
type = (type==null?'dd':type);
if(!((new RegExp(type+",","g")).test("yy,mm,ww,dd,hh,mi,ss,ms,")))
 throw new Error(-1,"calDateDistance(pd,type,intOrFloat,output)的type参数为非法.");
var iof = (intOrFloat==null?0:intOrFloat);
var num=0;
var o = {
"ww" : 7*86400000,
"dd" : 86400000,
"hh" : 3600000,
"mi" : 60000,
"ss" : 1000,
"ms" : 1
}
switch(type){
case "yy": num = this.getFullYear() - date.getFullYear(); break;
case "mm": num = (this.getFullYear() - date.getFullYear())*12+this.getMonth()-date.getMonth(); break;
default: 
var sub = this.valueOf() - date.valueOf();
if (o[type])
num = (sub/o[type]).fmtRtnVal(iof);
break;
}
return (output ? output.replace(/#/g," "+num+" ") : num);
}

解决方案 »

  1.   


    function go(){
    var nowDate = new Date();
    var strDate = new Date(2006,1,31);
    alert(strDate);
    alert(nowDate);
    if(strDate<nowDate){
    alert("right");
    }
    }
      

  2.   

    不好意思,上面的是按错键了,那段代码有些乱。我来写个比较简单的吧
    function veriftDate(inputDate){
        var nowDate = new Date();
        var dateAry = inputDate.split("-");
        var strDate = new Date(dateAry[0],dateAry[1],dateAry[2]);
        if(strDate<nowDate){
            alert("wrong");
        }
    }