已经在页面取得一个日期格式为:31-07-1990,要与当前的日期做对比,得出够不够多少年,如果今天是:01-08-2009,这样说来只有18年没有到19年,但是我想只要超出就算19,应该怎么写啊 这样写
s = "06-08-2008"
a = s.split("-");
dt = new Date(parseInt(a[2]),parseInt(a[1])-1,parseInt(a[0]));
td = new Date();
td = new Date(td.getFullYear(),td.getMonth(),td.getDate());
y = td.getFullYear()-dt.getFullYear();
dt1 = new Date(parseInt(a[2])+y,parseInt(a[1])-1,parseInt(a[0]))
dif = td.valueOf() - dt1.valueOf()
if (dif<0) y = y + 1
alert(y)这么写有问题 
我把日期带进去2008-08-06 
今天是2009-08-05 
结果得出来的是3 应该没到2009-08-05 ,所以应该是1,结果变成3,哪里错了啊

解决方案 »

  1.   


    s = "06-08-2008"
    a = s.split("-");
    dt = new Date(parseInt(a[2]),a[1]-1,a[0]);
    td = new Date();
    td = new Date(td.getFullYear(),td.getMonth(),td.getDate());
    y = td.getFullYear()-dt.getFullYear();
    dt1 = new Date(parseInt(a[2])+y,a[1]-1,a[0])
    dif = td.valueOf() - dt1.valueOf()
    if (dif<0) y = y + 1
    alert(y) 
      

  2.   


    一些常用的js取时间的方法 
    <SCRIPT LANGUAGE="JavaScript"><!--var myDate = new Date();     myDate.getYear();        //获取当前年份(2位)     myDate.getFullYear();    //获取完整的年份(4位,1970-????)     myDate.getMonth();       //获取当前月份(0-11,0代表1月)    //parseInt(myDate.getMonth()+1)     myDate.getDate();        //获取当前日(1-31)     myDate.getDay();         //获取当前星期X(0-6,0代表星期天)     myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)     myDate.getHours();       //获取当前小时数(0-23)     myDate.getMinutes();     //获取当前分钟数(0-59)     myDate.getSeconds();     //获取当前秒数(0-59)     myDate.getMilliseconds();    //获取当前毫秒数(0-999)     myDate.toLocaleDateString();     //获取当前日期 --2009年4月23日
         var mytime=myDate.toLocaleTimeString();     //获取当前时间 --11:01:08
         myDate.toLocaleString( );        //获取日期与时间 --2009年4月23日 11:17:30 
    </SCRIPT>
     我的博客
      http://blog.163.com/cdf_2008/blog/static/760647782009323111858300/
    好好看看
      

  3.   

    之前的代码改过了。去掉了a[1]和a[0]处的parseInt,注意看下
      

  4.   

    我知道你改过
    day就是带进去的日期“06-08-2008”       function show(day)
           {
    a = day.split("-");
    dt = new Date(parseInt(a[2]),a[1]-1,a[0]);
    td = new Date();
    td = new Date(td.getFullYear(),td.getMonth(),td.getDate());
    y = td.getFullYear()-dt.getFullYear();
    dt1 = new Date(parseInt(a[2])+y,a[1]-1,a[0])
    dif = td.valueOf() - dt1.valueOf()
    if (dif<0) y = y + 1
    alert(y) ;
    return y;       }
      

  5.   

    改一下即可s = "06-08-2008"
    a = s.split("-");
    dt = new Date(parseInt(a[2]),a[1]-1,a[0]);
    td = new Date();
    td = new Date(td.getFullYear(),td.getMonth(),td.getDate());
    y = td.getFullYear()-dt.getFullYear();
    dt1 = new Date(parseInt(a[2])+y,a[1]-1,a[0]-1)
    dif = td.valueOf() - dt1.valueOf()
    if (dif<0) y = y + 1
    alert(y)
      

  6.   

    应该是这样:s = "06-08-2008"
    a = s.split("-");
    dt = new Date(parseInt(a[2]),a[1]-1,a[0]);
    td = new Date();
    td = new Date(td.getFullYear(),td.getMonth(),td.getDate());
    y = td.getFullYear()-dt.getFullYear();
    dt1 = new Date(parseInt(a[2])+y,a[1]-1,a[0])
    dif = td.valueOf() - dt1.valueOf()
    if (dif>=0) y = y + 1
    alert(y) 
      

  7.   

    如果今天要算1的话 改 if(dif>0) y = y + 1
      

  8.   

    parseInt("08")//0
    注意加上进制
    parseInt("08",10)//8
    <script>
    s = "06-08-2008" 
    a = s.split("-"); 
    dt = new Date(parseInt(a[2],10),parseInt(a[1],10)-1,parseInt(a[0],10)); 
    td = new Date(); 
    td = new Date(td.getFullYear(),td.getMonth(),td.getDate()); 
    y = td.getFullYear()-dt.getFullYear(); 
    dt1 = new Date(parseInt(a[2],10)+y,parseInt(a[1],10)-1,parseInt(a[0],10)) 
    dif = td.valueOf() - dt1.valueOf() 
    if (dif <0) y = y + 1 
    alert(y)
    </script>