微信小程序酒店日历超强功能

首先利用date拿到年月日

月记得+1 ,因为是从0开始的

先遍历月份,跨年年+1 ,月归至1;

然后遍历天数,  

lastDat = new Date(val.year,val.month,0).getDate  ; 这个表达式可以获得当前月的最后一天,就不用取分闰年或者平年了;一句代码就可以解决很多判断,这个是蛮不错的。
获取月最后一天,就可以拿到每个月了。自己想遍历多少就多少;
 

 

 

来一个二维数组,在里面加自己想要的属性

如果需求需要加节假日,就给一个数组,遍历天数是满足条件则显示对应的名字;

如果需求需要加忙碌时间,或者特定区间段里价格不同,搞特价就利用map遍历月份,将满足条件的添加属性标志位即可。

 

 

可以考虑,用我这个方法。将不同年不同月不同日或者同年不同月不同日或者同年同月不同日的筛选出来;

然后想点击入住或者离店;

在这之前先给标签加data-i 以及 data-x   一个是标签所在的月份,一个是标签所在的天数;就可以做对应的改变样式

入住是第一次点击,离店时第二次点击;

做一个判断;

入住则改变对应月份里的天数的样式;当然要遍历一下;(点击事件,然后获取当前点击元素的对应所在月份和对应所在天数);

离店则要拿到离店对应的月份里的天数和入住对应的月份里的天数;俩者做差,将天数算出;(同一个点击事件,判断是不是第一次点击,可以把第一次点击的月份和天数存在一个对象里,判断这个对象是否存在值,存在则是第一次点,不存在则第二次点击);

然后进行遍历,由于遍历的时候当前月的索引是0,所以只用考虑月份和天数;判断月份如果第二次点的月份减去第一次的月份是0 则是同月 ;   同月就相减即可; 反之 则是跨月或者跨年(这时候跨年和跨月是一样的,因为转化为了数组索引;索引没有负数,所以只有0 和 整数),就把遍历 (月的天数减去当前索引月份的天数)+后面几个月的天数  )  ;

  

 

 

根据条件判断是跨年还是跨月,如果跨月则天数归零,月份加一;

这样头,中间,尾巴都出来了;

最后做的处理就是其他的状况,出现这些状况就只会出现入住状态;像美团那种感觉;

 

 

posted @ 2019-11-08 15:55  泽能  阅读(1002)  评论(0编辑  收藏  举报