2016-12-05 34 views
-1

需要生成星期數組,前後空天。如何生成星期數

[ //month 
['','','',1,2,3,4] //week 
... 
[25,26,27,28,29,30,''] 
] 
+3

嘗試使用'moment.js'並告訴我們,一旦你嘗試和失敗 – nullpointer

+0

[下面是一些'moment.js'助手爲你] (https://github.com/moment/moment/issues/529)。 – h2ooooooo

+1

目前還不清楚你在問什麼 – Endless

回答

0

這就是我所做的

const generateMonth = (date) => { 
    const getLocalDay = (date) => { 
    let day = date.getDay(); 

    if (day == 0) { 
     day = 7; 
    } 
    return day; 
    }; 

    const currentMonth = date.getMonth(); 
    const firstDate = new Date(date.getFullYear(), currentMonth, 1); 
    const lastDate = new Date(date.getFullYear(), currentMonth + 1, 0); 
    let month = []; 
    let week = []; 

    for (let i = 1; i < getLocalDay(firstDate); i++) { 
    week.push(''); 
    } 

    for (let i = 1; i <= lastDate.getDate(); i++) { 
    const tmpDate = new Date(date.getFullYear(), currentMonth, i); 
    if (getLocalDay(tmpDate) == 1) { 
     if (week.length) month.push(week); 
     week = []; 
    } 
    week.push(i); 
    } 

    for (let i = getLocalDay(lastDate); i < 7; i++) { 
    week.push(''); 
    } 

    if (week.length) month.push(week); 

    return month; 
}; 

result