如有  2011-7-1 ,2011-7-28,用什么方法可以得出 这两个日期的周数目

解决方案 »

  1.   

    var start = new Date(date1.replace("-","/"));
    var end = new Date(date2.replace("-","/"));
    var diff = parseInt((end - start) / (1000*60*60*24)); 
    先算出两个日期间的时间差,然后除以7天就行 
      

  2.   

    var start = new Date(date1.replace("-","/"));
    var end = new Date(date2.replace("-","/"));
    var diff = parseInt((end - start) / (1000*60*60*24)); 
    var count= parseInt((end - start) % (1000*60*60*24)); 
    if(count>0)
    {
       diff +=1;
    }我想弄的是,尽管本月开始日子,结束日子 是在周末,都当 一周算。==>先取余,如果余数大于0就当作一周
      

  3.   

    function getWeeks(year, month, day){
    var day1 = new Date(year, month-1, day);
    var day2 = new Date(year, 0, 1);

    var firstweek = day2.getDay();//1月1日是星期几
    if(firstweek == 0) {
    firstweek = 6;
    }else {
    firstweek = firstweek - 1;
    }//转化为0表示星期一,6表示星期日
    firstweek = (7 - firstweek) % 7;//计算1月1日离第一周的天数
    var day3 = new Date(year, 0, 1+firstweek)
    var result = Math.round((day1.getTime() - day3.getTime())/(1000*60*60*24));
    result = Math.floor(result / 7)+2;//这个地方应该用floor返回最小次数然后+2
    return result;
    };
    上面能获取当前日期是第几周,你想要的也能得到了
      

  4.   

    //返回Nowdate所在周的第一天
    function showWeekFirstDay(Nowdate)  
       
        {      
            var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);   
            return WeekFirstDay;   
        }//返回两个日期相差的周数function WeeksBetw(date1,date2){//这里的date1,date2都是Date对象var dt1=date1.getTime();var dt2=date2.getTime();return parseInt(Math.abs(dt1- dt2)/1000/60/60/24/7);}
      

  5.   

    我的方法同楼上的差不多。给楼主参考。<script>
    var endTimeStr = "7-28-2011";
    var endTime = new Date(endTimeStr);
    var currentTimeStr = "7-1-2011";
    var currentTime = new Date(currentTimeStr);
    var dayDiff = Math.ceil((((endTime.getTime() - currentTime.getTime())/3600000))/24/7);
    alert(dayDiff);
    </script>
      

  6.   

    ^_^ 谢谢啦
    这个问题算是明白计算原理了。
    如果 再更深入 一点的话,大家又是如何处理呢。
    function getYearWeek(StartDate,EndDate){ 
    //字符串格式 MM-dd-yyyy HH:mm:ss
    var sd = new Date(Date.parse(StartDate));
    var ed = new Date(Date.parse(EndDate));

    //1.两个时间的周数
    //2.每个周的开始日子 和 结束 日子
          


    }