显示的年份不同,可能周数中的日期时间也不相同,后面的周数显示中几月几号的显示实在是想不出来。求大神!

解决方案 »

  1.   

    明白了这个不难就是说,如果年份的下拉框值一改变,你就需要将周分的下拉框填充当前年的所周,以及每周所在的日期对吧?
    我讲个思路吧:第一步,获得年以后,创建一个日期  如2010  则创建  20100101
    创建好这个日期以后,就可以根据日期对象获得出1月1日为星期几了,然后在下拉框中添加一个option。上面写上1周(1月1日-1月1日)。再循环当前年份的天数-1次。每次将日期获取后,
    比对于前一天的日期,
    是否在同一周,在的话,将当前周的option后面的日期叠加1 如:1月1日-1月1日 换成 1月2日
    如果不在同一周的话,添加一个新的option,上面写什么不用我说了吧楼主,我这么说你明白了吗?
      

  2.   


    /*   
    * sYear: string, 年份;   
    * sWeek: string, 周数;   
    * startFromFirstMonday: boolean, 是否从每年第一天开始计算周数,   
    * true: 从每年第一天开始计算周数;false: 从每年第一个周一开始计算周数。   
    */  
    function convertWeekNumberToFirstDate(sYear, sWeek, startFromFirstMonday)  {   
    if (startFromFirstMonday == undefined) 
     startFromFirstMonday = true;     
    var weekIndex = 1;     
    var year = parseInt(sYear);   
    var week = parseInt(sWeek);     
    var i = 1;   
    var dFirstDate = new Date(year, 0, i);     
    if (!startFromFirstMonday){    
       if (weekIndex  < week){     
          weekIndex++;    
       }else     
       return dFirstDate;   
       }     
       if (dFirstDate.getDay() != 1){    
       i += 7 - dFirstDate.getDay() + 1;    
       dFirstDate.setFullYear(year, 0, i);   
       }     
       if (weekIndex  < week){    
       i += 7*(week-weekIndex);    
       dFirstDate.setFullYear(year, 0, i);   
       }    
        return dFirstDate;  
    }    
    参考:http://blog.csdn.net/chuningdeadth/article/details/6776941。
      

  3.   


    /*   
    * sYear: string, 年份;   
    * sWeek: string, 周数;   
    * startFromFirstMonday: boolean, 是否从每年第一天开始计算周数,   
    * true: 从每年第一天开始计算周数;false: 从每年第一个周一开始计算周数。   
    */  
    function convertWeekNumberToFirstDate(sYear, sWeek, startFromFirstMonday)  {   
    if (startFromFirstMonday == undefined) 
     startFromFirstMonday = true;     
    var weekIndex = 1;     
    var year = parseInt(sYear);   
    var week = parseInt(sWeek);     
    var i = 1;   
    var dFirstDate = new Date(year, 0, i);     
    if (!startFromFirstMonday){    
       if (weekIndex  < week){     
          weekIndex++;    
       }else     
       return dFirstDate;   
       }     
       if (dFirstDate.getDay() != 1){    
       i += 7 - dFirstDate.getDay() + 1;    
       dFirstDate.setFullYear(year, 0, i);   
       }     
       if (weekIndex  < week){    
       i += 7*(week-weekIndex);    
       dFirstDate.setFullYear(year, 0, i);   
       }    
        return dFirstDate;  
    }    
    参考:http://blog.csdn.net/chuningdeadth/article/details/6776941。