2014-05-15 156 views
1

我想知道計算月份的週數的最短路徑。請看下面。獲取本月的月份

這個月是2014年5月

Mon  Tue  Web  Thurs  Fri  Sat  Sun 
          1  2   3  4 <======= Week 1 
5  6  7  8  9   10  11 <======= Week 2 
12  13  14  15  16  17  18 <======= Week 3 
19  20  21  22  23  24  25 <======= Week 4 
26  27  28  29  30  31   <======= Week 5 
+1

另請參閱:http://stackoverflow.com/questions/5974798/how-to-find-week-of-month-for-calendar-which-starts-from-monday –

+0

我認爲'數學。((6 + new Date()。getDay())/ 7)'sh也應該這樣做。 – Hampus

回答

2

我覺得這個功能應該做的工作。

 function getWeekNo(date) { 

      var day = date.getDate() 

      //get weekend date 
      day += (date.getDay() == 0 ? 0 : 7 - date.getDay()); 

      return Math.ceil(parseFloat(day)/7); 
     } 

     alert(getWeekNo(new Date(2015, 2, 31))); 

當我測試,事實證明給予正確的結果爲:

  1. 月在本月的第一天是星期一,星期二或星期天
  2. 月跨越了四,五和六週
-1

Math.ceil(new Date().getDay()/7)

+0

downvote的任何理由?這似乎爲我實現了確切的所需功能。 – Reece

+0

編號5月1日返回0,5月14日返回2而不是3 – Aserre

+0

即使您添加1. 9月1日是星期一,因此9月7日是星期日,並在第1周。使用您的功能,它將在第2周 隨着ceil,5月5日將在第1周。 – Aserre