<script language=javascript>
Date.prototype.format   =   function(format)
{
        var   o   =
        {
                "M+"   :   this.getMonth()+1,   //month
                "d+"   :   this.getDate(),         //day
                "h+"   :   this.getHours(),       //hour
                "m+"   :   this.getMinutes(),   //minute
                "s+"   :   this.getSeconds(),   //second
                "q+"   :   Math.floor((this.getMonth()+3)/3),     //quarter
                "S"   :   this.getMilliseconds()   //millisecond
        }
        if(/(y+)/.test(format))
        format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4   -   RegExp.$1.length));
        for(var   k   in   o)
        if(new   RegExp("("+   k   +")").test(format))
        format   =   format.replace(RegExp.$1,RegExp.$1.length==1   ?   o[k]   :   ("00"+   o[k]).substr((""+   o[k]).length));
        return   format;
}function   chkDate11(byvDate)
{
var   y   =   new   Date().getFullYear();
var   m   =   new   Date().getMonth();
var   d   =   new   Date().getDate();
var   today=y+'/'+m+'/'+d;
var   d1   =   new   Date(today);
var   d2   =   new   Date(byvDate);
//alert(d2)
if   (d1.format("yyyy/MM/dd")   >   d2.format("yyyy/MM/dd")   )
{return   d1;}
else
{
return   d2;}

alert(chkDate11("2007/12/01").format("yyyy/MM/dd"))
</script>

解决方案 »

  1.   

    L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="Gao YiXiang" />
        <meta name="email" content="[email protected]" />
        <meta name="keywords" content="javascript dhtml dom" />
        <meta name="description" content="I love web development." />
    </head>
    <body>
        <script type="text/javascript">
        <!--
    var byvDate='2007-12-01', today='2007-12-11';
    var d1 = new Date(byvDate.replace("-", "/"));
    var d2 = new Date(today.replace("-", "/"));if (d1 > d2)
    {
        alert("byvDate > today");
    }
    else if (d1 < d2)
    {
        alert("byvDate < today");
    }
    else
    {
        alert("byvDate = today");
    }
        //-->
        </script>
    </body>
    </html>
      

  2.   

    如果只比较时间,也可以不生成时间对象,直接比较时间数字<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title> new document </title>
        <meta name="generator" content="editplus" />
        <meta name="author" content="Gao YiXiang" />
        <meta name="email" content="[email protected]" />
        <meta name="keywords" content="javascript dhtml dom" />
        <meta name="description" content="I love web development." />
    </head>
    <body>
        <script type="text/javascript">
        <!--
    var byvDate='2007-12-01', today='2007-12-11';
    var d1 = Date.parse(byvDate.replace("-", "/"));
    var d2 = Date.parse(today.replace("-", "/"));if (d1 > d2)
    {
        alert("byvDate > today");
    }
    else if (d1 < d2)
    {
        alert("byvDate < today");
    }
    else
    {
        alert("byvDate = today");
    }
        //-->
        </script>
    </body>
    </html>
      

  3.   

    var byvDate='2007-12-01', today='2007-12-11';
    如果你的日期格式这么标准的话,直接比较大小就OK了
    alert(byvDate > today);
    alert(byvDate < today);
    alert(byvDate == today);
      

  4.   

    先谢谢各位!
    <script type="text/javascript">
        <!--
    var byvDate='2007-12-01', today='2007-12-11';
    var d1 = Date.parse(byvDate.replace("-", "/"));
    var d2 = Date.parse(today.replace("-", "/"));
    if (d1 > d2)
    {
        alert("byvDate > today");
    }
    else if (d1 < d2)
    {
        alert("byvDate < today");
    }
    else
    {
        alert("byvDate = today");
    }
        //-->
        </script>
    上面这段代码在.aspx文件里运行是没有问题的;
    但是把它放到.js文件就是不行,主要表现在无法比较
    function chkDate11(byvDate)
    {
    var y = new Date().getFullYear();
    var m = new Date().getMonth();
    var d = new Date().getDate();
    var today=y+'-'+m+'-'+d;
    if ( today  > byvDate)     //我检查过,主要是这个if语句无法正常运行?
    {alert(today);
    return today;
    }
    else
    {alert(byvDate);
    return byvDate;   //if (today>byvDate)无论哪个值大,都运行else语句后的,这是为什么?}
    }
      

  5.   

    byvDate传进来的是时间对象还是字符串?
      

  6.   

    问题稿惦了,答案如下:function chkDate(){
    ...
    ......
    var temp=null;
    temp=chkDate11(returnValue); 
    ...
    ......
    }
    function chkDate11(byvDate)
    {
    var y = new Date().getFullYear();
    var m = new Date().getMonth()+1;
    var d = new Date().getDate();
    var today=y+'-'+m+'-'+d;
    var d1 = new Date(today.replace("-", "/"));   //主要是这句话起作用
    var d2 = new Date(byvDate.replace("-", "/"));  
    if ( d1  > d2)
    {alert('选择日期必须大于等于今天!');
    return today;
    }
    else
    {return byvDate;
    }
    }特别感谢斑竹:天外水火(我要多努力)
    也感谢其他各位的热心帮助!