以字符串的形式得到两个日期(比如2011年10月15日得到的是20111015),怎样判断这两个日期是否相差六个月?求指导……谢谢……

解决方案 »

  1.   

    function checkDate(date1, date2){
    var _date1 = Math.max(date1, date2),
    _date2 = Math.min(date1, date2),
    reg = /^(\d{4})(\d{2})(\d{2})$/;
    reg.exec(_date1);
    var y1 = RegExp.$1,
    m1 = RegExp.$2,
    d1 = RegExp.$3;
    reg.exec(_date2);
    var y2 = RegExp.$1,
    m2 = RegExp.$2,
    d2 = RegExp.$3;
    if(y1 === y2){
    if(m1 - m2 > 6){
    return true;
    }else if(m1 - m2 === 6){
    return (d1 >= d2) ? true : false;
    }else{
    return false;
    }
    }else if(y1 > y2){
    return true;
    }
    }
    var str1 = "20110702",
    str2 = "20110102";
    alert(checkDate(str1, str2));
      

  2.   

    有很多方法,举一个简单的例子:function check(s1,s2){
      var y1=parseInt(s1.substring(0,4));
      var y2=parseInt(s2.substring(0,4));
      var m1=parseInt(s1.substring(4,6));
      var m2=parseInt(s2.substring(4,6));
      var di=12*(y1-y2)+(m1-m2);
      if(di==6||di==-6){return true;}
      return false;
    }
      

  3.   

    reg.exec(_date2);    
                var y2 = RegExp.$1,
                    m2 = RegExp.$2,
                    d2 = RegExp.$3;
    study
    问题的关键是把需要的字段截取出来