js代码:
<script language="JavaScript"> function dateDiff (doss_card.createdate,vary_scrap_detail.scrap_date){
return (new Date(vary_scrap_detail.scrap_date.split('-')[0],vary_scrap_detail.scrap_date.split('-')[1],vary_scrap_detail.scrap_date.split('-')[2])-new Date(doss_card.createdate.split('-')[0],doss_card.createdate.split('-')[1],doss_card.createdate.split('-')[2]))/(24*60*60*365*1000);
} var createdate=document.all("doss_card.createdate");
var scrap_date=document.all("vary_scrap_detail.scrap_date");
var used_year=document.all("vary_scrap_detail.used_year");
scrap_date.onchange=show;
function show(){
used_year.value=dateDiff(createdate.value,scrap_date.value);
}
</script>jsp页面:
<input type="text" name="doss_card.createdate"/>
<input type="text" name="vary_scrap_detail.scrap_date"/>
<input type="text" name="vary_scrap_detail.used_year"/>请问各位大侠,错在何方????求解!!

解决方案 »

  1.   

    <script language="JavaScript"> function dateDiff (doss_card.createdate,vary_scrap_detail.scrap_date){
    return (new Date(vary_scrap_detail.scrap_date.split('-')[0],vary_scrap_detail.scrap_date.split('-')[1],vary_scrap_detail.scrap_date.split('-')[2])-new Date(doss_card.createdate.split('-')[0],doss_card.createdate.split('-')[1],doss_card.createdate.split('-')[2]))/(24*60*60*365*1000);
    } var createdate=document.all("doss_card.createdate");
    var scrap_date=document.all("vary_scrap_detail.scrap_date");
    var used_year=document.all("vary_scrap_detail.used_year");
    scrap_date.onchange=show;
    function show(){
    used_year.value=dateDiff(createdate.value,scrap_date.value);
    }
    alter(scrap_date.value-createdate.value);
    </script><body>
    <input type="text" name="doss_card.createdate"/>
            <input type="text" name="vary_scrap_detail.scrap_date"/>
            <input type="text" name="vary_scrap_detail.used_year"/>
    </body>
      

  2.   

    这一句:return (new Date(vary_scrap_detail.scrap_date.split('-')[0],vary_scrap_detail.scrap_date.split('-')[1],vary_scrap_detail.scrap_date.split('-')[2])-new Date(doss_card.createdate.split('-')[0],doss_card.createdate.split('-')[1],doss_card.createdate.split('-')[2]))/(24*60*60*365*1000);直接用js里的Date对象相减是不行的。
    可以这样写:function dateDiff(){
       var sd = vary_scrap_detail.scrap_date;
       var sDate = new Date(sd.split('-')[0],sd.split('-')[1],sd.split('-')[2]);
       var cd = doss_card.createdate;
       var cDate = new Date(cd.split('-')[0],cd.split('-')[1],cd.split('-)[2]);   var diffTime = sDate.getTime() -cDate.getTime(); //getTime()得出的是Date对象与1970-01-01零时所间隔的毫秒数   return diffTime; //单位是毫秒}