作弊一下,调用vbscript
<Script>
var a
execScript('a=DateDiff("d", Now, "2005-12-08")','VBSCRIPT')
alert(a)
</Script>

解决方案 »

  1.   

    前半周在上个月,后半周在下个月 并不影响判断是否在一周之内,
    以下给个思路:先取得两个日期所差的天数 Diff
    if ( Diff > 7 || Diff < -7 )则不在同一周;
    另外先取第一个日期是周几,先看getDay()对应的返回值:
    值 星期 
    0 星期天 
    1 星期一 
    2 星期二 
    3 星期三 
    4 星期四 
    5 星期五 
    6 星期六 
    如果 getDay() + Diff 大于6 或小于0 则判断不在同一周。
      

  2.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function isOneWeek(d1, d2)
    {
      var n1 = Date.parse(d1.replace(/-/g, "/"));
      var n2 = Date.parse(d2.replace(/-/g, "/"));
      if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;}
      if(Math.abs(n1-n2)>1000*60*60*24*7) return false;
      var max = Math.max(n1, n2);
      var min = Math.min(n1, n2);
      return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min;
    }var d1 = "2005-12-28";
    var d2 = "2006-01-01";
    alert(d1 +" 与 "+ d2 +" 是一周内的日期? \n\n"+ isOneWeek(d1, d2));
    //-->
    </SCRIPT>
      

  3.   

    var max = Math.max(n1, n2);
      var min = Math.min(n1, n2);
      return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min;
    这3句是验证什么的啊!
      if(Math.abs(n1-n2)>1000*60*60*24*7) return false;这句不是已经验证了是不是在一周吗?
      

  4.   

    哦,我有点理解了
    if(Math.abs(n1-n2)>1000*60*60*24*7) return false;只是大概判断两个日期是不是相差7天
    var max = Math.max(n1, n2);
    var min = Math.min(n1, n2);
    return (max - ("7123456".charAt(new Date(max).getDay())*24*60*60*1000))<min;这个是判断是不是在一周里。
    我说的对不对啊!梅花雪!
      

  5.   

    建议楼上的兄弟用正则写出一个解决方案来。
    TO: yehan19811(野汉) 是的,就是要做这种判断
      

  6.   

    //照着梅花雪前辈的程序改的//如果把周日作为星期的开始,一般是欧美国家习惯
    function isOneWeek2(d1, d2)
    {
      var n1 = Date.parse(d1.replace(/-/g, "/"));
      var n2 = Date.parse(d2.replace(/-/g, "/"));
      var d1=new Date(n1);
      var d2=new Date(n2);
      if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;}
    //判断两个日期所在(欧美国家习惯)星期的Sunday是不是同一天
    return (n1-(d1.getDay())*24*60*60*1000)==(n2-(d2.getDay())*24*60*60*1000)
    }//如果把周一作为星期的开始
    function isOneWeek3(d1, d2)
    {
      var n1 = Date.parse(d1.replace(/-/g, "/"));
      var n2 = Date.parse(d2.replace(/-/g, "/"));
      var d1=new Date(n1);
      var d2=new Date(n2);
      if(isNaN(n1) || isNaN(n2)) {alert("Your date is wrong!"); return false;}//判断两个日期所在星期的星期一(的前一天)是不是同一天
    return (n1-((d1.getDay()==0)?7:d1.getDay())*24*60*60*1000)==(n2-((d2.getDay()==0)?7:d2.getDay())*24*60*60*1000)}
      

  7.   

    你可以从日期上下功夫,比如日期在输出的时候虽然是YYYY-MM-DD的格式,但是内部传的参数是unix timestamp,也就是秒,然后相减看看是不是小于7*24*60*60就好了
      

  8.   

    http://community.csdn.net/Expert/topic/4360/4360247.xml?temp=4.659671E-02 我后来加了两个关于周的方法//新加的两个关于周数的方法
    //根据当前日期所在年和周数返回周日的日期
    Date.prototype.RtnByWeekNum = function (weekNum){
    if(typeof(weekNum) != "number")
    throw new Error(-1,"RtnByWeekNum(weekNum)的参数是数字类型.");
    var date = new Date(this.getFullYear(),0,1);
    var week = date.getDay();
    week = (week==0?7:week);
    return date.dateAfter(weekNum*7-week,1);
    }
    //根据日期返回该日期所在年的周数
    Date.prototype.getWeekNum = function (){
    var dat = new Date(this.getFullYear(),0,1);
    var week = dat.getDay();
    week = (week==0?7:week);
    var days = this.calDateDistance(dat,"dd")+1;
    return ((days + 6 - this.getDay() - 7 + week)/7);
    }
    根据返回值判断就可以了