2012-12-02 34 views
4

我有一個js代碼,它是在一個更大的div中實際上是一個日曆的月份中的represanting div的div。 用戶可以自由選擇月份和年份,我需要爲該月份創建日曆。我怎樣才能得到每個月和每年的給定輸入的一週中的哪一天開始?

例如:如果這個月是從星期六開始的,我需要先建立5個空白塊,然後開始填充日曆,塊裏面有一天的時間。 我如何計算給定的月份和年份的輸入數字?

回答

14

您可以使用Date對象的getDay功能得到一週的一天。

爲了得到第一個月創建一個新的Date object

var year = "2012"; 
var month = "12"; 
var day = new Date(year + "-" + month + "-01").getDay() 
// 6 - Saturday 

既然你從1數和週一是一週的第一天,你還必須要做到這一點:

day = (day===0) ? 7 : day 
+1

我想補充一點,如果你要使用的動態本月像'VAR月=新達te()。getMonth()'確保你添加1'var month = new Date()。getMonth()+ 1;'因爲查詢中的月份是1,但返回值是0-11。瞭解到這一點很難。嘿嘿 – zfb

0

ES6方式:

const firstDayInMonthIndex = (
    monthIndex = new Date().getMonth(), 
    year = new Date().getFullYear() 
) => (
    new Date(`${year}-${monthIndex + 1}-01`).getDay() 
) 
相關問題