datediff('m','2004-10-30','2004-4-30')

解决方案 »

  1.   

    弄反了...
    <%=datediff("m","2004-4-3","2004-10-30")%>
      

  2.   

    人家要的是javascript的,你自己写吧
      

  3.   

    var dt1=new Date();
    var dt2=new Date(2004,8-1,17);
    alert(dt1.getMonth()-dt2.getMonth());
      

  4.   

    <script language="javascript">
    function check(a,b)
    {
    var parse = function(s)
    {
    return Date.parse(s.replace(/-/g,'/'));
    };
    var diff = 7*24*3600*1000;
    return (parse(b)-parse(a))>diff
    }alert(check("2004-9-10","2004-9-18"));
    alert(check("2004-9-10","2004-9-15"));
    </script>
      

  5.   

    var d1=new Date(2004,10,30)
    var d2=new Date(2004,4,30)
    alert(parseInt(d1.getMonth())-parseInt(d2.getMonth()))
      

  6.   

    这是我写的JAVA程序里的,方法就是这样,你自己去查查相关函数,差不了多少
         /**
          输入参数类型:参数1:Calendar型 参数2:Calendar型
              功能说明:两个日期相差多少月
              返回值类型:int型
         */
         
         
         public int getMonth( Calendar c1, Calendar c2  )
         {
              int iDay=( c2.get(java.util.Calendar.YEAR)-c1.get(java.util.Calendar.YEAR))*12+c2.get(java.util.Calendar.MONTH)-c1.get(java.util.Calendar.MONTH);
              int mod = c2.get(java.util.Calendar.DATE)-c1.get(java.util.Calendar.DATE);
              iDay+=(mod>=0?0:-1);
              return iDay;
         }
      

  7.   

    <script language="javascript">
    function computeDate(date1,date2)
    {
        var arrD1 = date1.split("-");
        var arrD2 = date2.split("-");
        var d1 = new Date(arrD1[0],arrD1[1]-1,arrD1[2]);
        var d2 = new Date(arrD2[0],arrD2[1]-1,arrD2[2]);
        var result = new Date(d2.getTime() - d1.getTime());
        return parseInt(result.getTime()/1000/3600/24/30);
    }
    alert(computeDate("2004-4-30","2004-10-30"));
    </script>
      

  8.   

    晕,那里有着么麻烦用getmonth的出来后,减
      

  9.   

    可能我没有描述清楚,我的目的是判断两个日期是否超过6个月,返回一个true或false。所以要注意闰月或者月底的情况。
      

  10.   

    <script language=javascript>
    var d1=new Date(2004,10,31);
    var d2=new Date(2004,4,30);
    var d1Year=d1.getFullYear();
    var d1Mohth=d1.getMonth();
    var d1Date=d1.getDate();
    if( new Date(d1Year,d1Mohth+6,d1Date)<d2 || new Date(d1Year,d1Mohth-6,d1Date)>d2) 
      alert("相差超过六个月");
    else 
      alert("相差不超过六个月");</script>
      

  11.   


    //判断日期date1是否大于date2  months个月,可跨年度
    function  monthsOfDates(date1,date2,months){
    var temp1=date1.split("-")
    var temp2=date2.split("-")
    var _months=(parseInt(temp2[0])-parseInt(temp1[0])+1)*12-(parseInt(temp1[1])+(12-parseInt(temp2[1])))
    if((_months>months)||(_months==months&&(parseInt(temp2[2])-parseInt(temp1[2])>-1)))return true
    return false
    }
    //测试数据
    alert( monthsOfDates("2004-4-30","2004-10-29",6)) 
    alert( monthsOfDates("2004-4-30","2004-10-30",6)) 
    alert( monthsOfDates("2004-4-30","2004-10-31",6)) 
    alert( monthsOfDates("2003-4-30","2004-10-29",6)) 
    alert( monthsOfDates("2003-12-30","2004-10-29",6))
      

  12.   

    /*
    比较两个日期早晚
    参数:date1,date2 为Date类型
    返回true:大于六个月    false:小于六个月
    */
    function compareDate(date1,date2){
       return Abs(date1.valueOf()-date.valueOf())>3600000*24*183?true:false;
    }
    注:这里的183是按照30,31,30,31,30,31这么算的,我不知道你的需要是怎么样的
    或者换成你自己的算法
    没有经过测试,只是个思路
      

  13.   

    用getmonth相减
    结果
    大于6 返回 true(超过)
    小于6 返回 false
    等于6 再getday判断day的大小
     大于0 返回 true 
     < = 0 返回 false