首先利用date拿到年月日
月記得+1 ,因為是從0開始的
先遍歷月份,跨年年+1 ,月歸至1;
然后遍歷天數,

來一個二維數組,在里面加自己想要的屬性
如果需求需要加節假日,就給一個數組,遍歷天數是滿足條件則顯示對應的名字;
如果需求需要加忙碌時間,或者特定區間段里價格不同,搞特價就利用map遍歷月份,將滿足條件的添加屬性標志位即可。
可以考慮,用我這個方法。將不同年不同月不同日或者同年不同月不同日或者同年同月不同日的篩選出來;
然后想點擊入住或者離店;
在這之前先給標簽加data-i 以及 data-x 一個是標簽所在的月份,一個是標簽所在的天數;就可以做對應的改變樣式
入住是第一次點擊,離店時第二次點擊;
做一個判斷;
入住則改變對應月份里的天數的樣式;當然要遍歷一下;(點擊事件,然后獲取當前點擊元素的對應所在月份和對應所在天數);
離店則要拿到離店對應的月份里的天數和入住對應的月份里的天數;倆者做差,將天數算出;(同一個點擊事件,判斷是不是第一次點擊,可以把第一次點擊的月份和天數存在一個對象里,判斷這個對象是否存在值,存在則是第一次點,不存在則第二次點擊);
然后進行遍歷,由於遍歷的時候當前月的索引是0,所以只用考慮月份和天數;判斷月份如果第二次點的月份減去第一次的月份是0 則是同月 ; 同月就相減即可; 反之 則是跨月或者跨年(這時候跨年和跨月是一樣的,因為轉化為了數組索引;索引沒有負數,所以只有0 和 整數),就把遍歷 (月的天數減去當前索引月份的天數)+后面幾個月的天數 ) ;
根據條件判斷是跨年還是跨月,如果跨月則天數歸零,月份加一;
這樣頭,中間,尾巴都出來了;
最后做的處理就是其他的狀況,出現這些狀況就只會出現入住狀態;像美團那種感覺;