参考这个:function DaysBetweenDateAndNow(yr, mo, dy){
   var d, r, t1, t2, t3;            // 声明变量。
   var MinMilli = 1000 * 60         // 初始化变量。
   var HrMilli = MinMilli * 60
   var DyMilli = HrMilli * 24
   t1 = Date.UTC(yr, mo - 1, dy)    // 从 1970 年 1 月 1 日起的毫秒。
   d = new Date();                  // 创建日期对象。
   t2 = d.getTime();                // 获得当前时间。
   if (t2 >= t1) 
      t3 = t2 - t1;
   else
      t3 = t1 - t2;
   r = Math.round(t3 / DyMilli);
   return(r);                       //返回差值。
}注意你的期限需要转化为毫秒再参与计算。

解决方案 »

  1.   

    做成3部分
    起始日期 分年月日三个框 text1,text2,text3
             期限 text4
    提交后,
    t1=(text3+text4)\30
    t2=(text3+text4) mod 30 (日期)
    t1=t1+text2 
    t3=t1\12
    t4=t1 mod 12  (月份)
    t5=t3+text1  (年)笨法子,如果要求精确到每月30还是31天什么的就不知道怎么做了
      

  2.   

    var d1=new Date("1983/06/05");
    d1.setDate(d1.getDate()+30);
    alert(d1);
      

  3.   

    可一把日期存到数据库的一字段,必须是 日期 字段
    然后读出来直接加上日期就行!
    FormatDateTime(rs("日期字段名")+30,1)
    这样就可以显示了
      

  4.   

    早上看见这贴,花了老半天时间,还是没弄出来,最后问人,查资料,得到了jk的这种办法(中文网站没有,郁闷),补充一点,  日期用数值表示时应该写成 Date(1983,5,5),应为月份的显示是0-11,这点因该留意下
      

  5.   

    回复人: JK_10000(JK) ( ) 信誉:121  2005-07-14 14:59:00  得分: 0  
     
     
       var d1=new Date("1983/06/05");
    d1.setDate(d1.getDate()+30);
    alert(d1);
      
     
    如上。
      

  6.   

    var d1=new Date("1983/06/05");
    d1.setDate(d1.getDate()+30);
    alert(d1.toLocalString());
      

  7.   

    sorry,更正如下
    d1.toLocalString > d1.toLocaleDateString