<script>
function enddate(edate)
{
var year = edate.split("-")[0];
var month = parseInt(edate.split("-")[1],10)-1;
var day = edate.split("-")[2];
var s1 = new Date(year,month,day);
var s2 = new Date(); 
var days= s1.getTime() - s2.getTime();
var time = parseInt(days / (1000 * 60 * 60 * 24));
return time;
}alert(enddate("2009-02-19"));//昨天,<0说明已过期
alert(enddate("2009-02-20"));//今天
alert(enddate("2009-02-21"));//明天
</script>

解决方案 »

  1.   


    <script>
    function enddate(edate)
    {
    var year = edate.split("-")[0];
    var month = parseInt(edate.split("-")[1],10)-1;
    var day = edate.split("-")[2];
    var s1 = new Date(year,month,day);
    var s2 = new Date(); 
    var days= s1.getTime() - s2.getTime();
    var time = parseInt(days / (1000 * 60 * 60 * 24));
    if (time<0){document.write("已过期");}
    else {document.write("距今还有"+time+"天");
    }alert(enddate("2009-02-19"));//昨天,<0说明已过期
    alert(enddate("2009-02-20"));//今天
    alert(enddate("2009-02-21"));//明天
    </script>
    为什么这样没有反应?
      

  2.   

    document.write("已过期")重写页面,原来的(JS/HEML)代码都不存在,只有"已过期",所以“没有反应”。可以:
    <input id=timer onblur=enddate(this.value) onfocus="this.value=''">
    <script language="javascript">
    <!--
    function enddate(edate){
    var year = edate.split("-")[0];
    var month = parseInt(edate.split("-")[1],10)-1;
    var day = edate.split("-")[2];
    var s1 = new Date(year,month,day);
    var s2 = new Date(); 
    var days= s1.getTime() - s2.getTime();
    var time = parseInt(days / (1000 * 60 * 60 * 24));if (time<0)document.getElementById("timer").value+=" 已过期"
    else document.getElementById("timer").value+=" 距今还有"+time+"天";
    }
    //-->
    </script>