梅老师CODE:<SCRIPT LANGUAGE="JavaScript">
<!--
Date.prototype.getWeek = function(flag)
{
var first = new Date(this.getFullYear(), 0, 1);
var n = parseInt("1065432".charAt(first.getDay()));
n = this.getTime()-first.getTime()-n*24*60*60*1000;
n = Math.ceil(n/(7*24*60*60*1000));
return (flag==true&&first.getDay()!=1)?(n+1):n;
};
alert("今天是今年的第 "+ new Date().getWeek() +" 周\n本年第一周周一在上一年的情况")
alert("今天是今年的第 "+ new Date().getWeek(true) +" 周")
alert("2006/10/1 是第 "+ new Date("2006/10/1").getWeek(true) +" 周")
//-->
</SCRIPT>

解决方案 »

  1.   

    这个是偶滴。<script type="text/javascript">
    var date = new Date;
    var w = date.getDay(), d = date.getDate();
    if (!w) w = 7;
    var zhou = Math.ceil(
    (d + ((d - w) % 7)) / 7
    /*
    (d - w) % 7 当前日期,减去当前星期 在mod 7 就等于这个月的第一天和周日的差距。
    然后在用当前日期+这个差距 / 7 取ceil 就是这个当前周是这个月的第几天
    */
    );
    alert(zhou);
    </script>
      

  2.   

     var iTempYear = 2007;
     var iTempMonth = 1;
     var iTemp = 1;
     var TempStart = 0;
     
     defaultStatus = 
      " +0:"+fGetWeekOfTheYear(iTempYear, iTempMonth, iTemp, TempStart)
      +" +4:"+fGetWeekOfTheYear(iTempYear, iTempMonth, iTemp+4, TempStart)
      +" +5:"+fGetWeekOfTheYear(iTempYear, iTempMonth, iTemp+5, TempStart)
      +" +6:"+fGetWeekOfTheYear(iTempYear, iTempMonth, iTemp+6, TempStart)
      +" +7:"+fGetWeekOfTheYear(iTempYear, iTempMonth, iTemp+7, TempStart)
      +" +8:"+fGetWeekOfTheYear(iTempYear, iTempMonth, iTemp+8, TempStart)
      +" +13:"+fGetWeekOfTheYear(iTempYear, iTempMonth, iTemp+13, TempStart)
      ;  function fGetWeekOfTheYear(iYear, iMonth, iDay, WeekStartBy)
     { // shawl.qiu code, return integer
      if(!iYear||!iMonth||!iDay)
      {
       var Dt = new Date();
       iYear = Dt.getFullYear();
       iMonth = Dt.getMonth()+1;
       iDay = Dt.getDate();
      }
      iMonth--;
      
      var WeekCount = 0;
      
      for(var i=0; i<iMonth; i++)
      {
       var TempDt = new Date(iYear, i+1);
       TempDt.setDate(-0);
       WeekCount+= TempDt.getDate();   
      }
      
      WeekCount += iDay;
      WeekCount += (new Date(iYear, 0).getDay());
      if(typeof(WeekStartBy)=="number") WeekCount=WeekCount-WeekStartBy;
      
      WeekCount = Math.ceil(WeekCount/7);
      if(WeekCount>52) WeekCount = WeekCount-52;
      
      return WeekCount;
     } // function fGetWeekOfTheYear(iYear, iMonth, iDay, WeekStartBy)
      

  3.   

    昂,抱歉,刚仔细想了下,那个有错误。。用下面的这个思路<script type="text/javascript">
    var date = new Date;
    var w = date.getDay(), d = date.getDate();
    var zhou = Math.ceil(
        (d + 6 - w) / 7
        /*
    a = d = 当前日期
    b = 6 - w = 当前周的还有几天过完(不算今天)
        a + b 的和在除以7 就是当天是当前月份的第几周
        */
    );
    alert(zhou);
    </script>
      

  4.   

    <script type="text/javascript">function getDiffWeek(y,m,d)
    {
        inputDay = y+"-"+m+"-"+d;
        firstDay = y+"-1-1";
        n = "";
        execScript('n = DateDiff("ww", DateValue(firstDay)  ,  DateValue(inputDay))' ,'vbscript');
        return n;
    }
    var yy = "2007";
    var mm = "3"
    var dd = "2"alert(getDiffWeek(yy,mm,dd))
    </script>
      

  5.   

    你看这回还有问题么?
    <script type="text/javascript">
    var getMonthWeek = function (a, b, c) {
    /*
    a = d = 当前日期
    b = 6 - w = 当前周的还有几天过完(不算今天)
    a + b 的和在除以7 就是当天是当前月份的第几周
    */
    var date = new Date(a, parseInt(b) - 1, c), w = date.getDay(), d = date.getDate();
    return Math.ceil(
    (d + 6 - w) / 7
    );
    };var getYearWeek = function (a, b, c) {
    /*
    date1是当前日期
    date2是当年第一天
    d是当前日期是今年第多少天
    用d + 当前年的第一天的周差距的和在除以7就是本年第几周
    */
    var date1 = new Date(a, parseInt(b) - 1, c), date2 = new Date(a, 0, 1),
    d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000);
    return Math.ceil((d + ((date2.getDay() || 1) - 1)) / 7);
    };document.write(
    "今天是本月的第 ", getMonthWeek(2007, 10, 17), " 周<br \/>"
    , "今天是本年的第 ", getYearWeek(2007, 10, 17), " 周"
    );
    </script>
      

  6.   

    错了那个。。改动一下
    var getYearWeek = function (a, b, c) {
    /*
    date1是当前日期
    date2是当年第一天
    d是当前日期是今年第多少天
    用d + 当前年的第一天的周差距的和在除以7就是本年第几周
    */
    var date1 = new Date(a, parseInt(b) - 1, c), date2 = new Date(a, 0, 1),
    d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000);
    return Math.ceil(
    (d + ((date2.getDay() + 1) - 1)) / 7
    );
    };