首先利用date拿到年月日

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

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

然后遍历天数,

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

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

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

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

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

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

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

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

做一个判断;

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

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

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

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

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

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

微信小程序酒店日历超强功能的更多相关文章

  1. 微信小程序仿朋友圈功能开发(发布、点赞、评论等功能)

    微信小程序仿朋友圈功能开发(发布.点赞.评论等功能) 1.项目分析 项目整体分为三个部分 发布 展示 详情页 graph LR 朋友圈发布 --内容发布--> 内容展示 内容展示 --点击展示卡 ...

  2. 微信小程序产品定位及功能介绍

    产品定位及功能介绍 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 小程序注册 注册小程序帐号 在微信公众平台官网首页(mp.weixin.qq ...

  3. 让你的微信小程序具有在线支付功能

    前言 最近需要在微信小程序中用到在线支付功能,于是看了一下官方的文档,发现要在小程序里实现微信支付还是很方便的,如果你以前开发过服务号下的微信支付,那么你会发现其实小程序里的微信支付和服务号里的开发过 ...

  4. (三)微信小程序首页的分类功能和搜索功能的实现笔记

    就在昨天,微信宣布了微信小程序开发者工具新增“云开发”功能 下载最新的开发者工具,现在无需服务器即可实现小程序的快速迭代! 分类功能和搜索功能的效果图 1.首页分类功能的实现 boxtwo方法(.js ...

  5. 微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能

    微信小程序+WEB使用JS实现注册[60s]倒计时功能开发步骤: 1.wxml页面代码: <text>绑定手机</text> <form bindsubmit=" ...

  6. 微信小程序开发平台新功能「云开发」快速上手体验

    微信小程序开发平台刚刚开放了一个全新的功能:云开发. 简单地说就是将开发人员搭建微信小程序后端的成本再次降低,此文刚好在此产品公测时,来快速上手看看都有哪些方便开发者的功能更新. 微信小程序一直保持一 ...

  7. 微信小程序又一爆炸功能上线-云开发

    云开发介绍 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 云开发为开发者提供完整的云端支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开 ...

  8. 微信小程序中悬浮窗功能的实现(主要探讨和解决在原生组件上的拖动)

    问题场景 所谓悬浮窗就是图中微信图标的按钮,采用fixed定位,可拖动和点击. 这算是一个比较常见的实现场景了. 为什么要用cover-view做悬浮窗?原生组件出来背锅了~ 最初我做悬浮窗用的不是c ...

  9. 微信小程序——极点日历使用方法

    极点日历github项目地址 添加至自己的小程序方法 极点日历属性接口文档 代码实例: xml: <calendar calendar-style="calendar" he ...

随机推荐

  1. 使用 Linux Centos Docker 安装 2Bizbix

    在 Docker 安装 2Bizbix 安装 Centos 7 安装 mysql5.5 镜像 映射好数据库的配置文件和数据库目录 在 Windows 安装 2Bizbox 安装 jboss/base- ...

  2. 【Leetcode链表】两两交换链表中的节点(24)

    题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表.你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3->4, 你应该返回 2- ...

  3. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛: B. Coin 【概率题】【数论】

    Bob has a not even coin(就是一个不均匀的硬币,朝上的概率不一定是1/2), every time he tosses the coin, the probability tha ...

  4. iOS tableView优化

    iOS: Autolayout和UITableViewCell的动态高度 http://www.mgenware.com/blog/?p=507 优化UITableViewCell高度计算的那些事 h ...

  5. oracle HEXTORAW(c1)

    [功能]将一个十六进制构成的字符串转换为二进制 [参数]c1,十六进制的字符串 [返回]字符串 [示例] select HEXTORAW('A123')  from dual;

  6. DataTable CAST 成集合后,进行自定义排序再转换回DataTable

    dt = dt.Rows.Cast<DataRow>().OrderBy(r => Convert.ToInt32(r["数量"])==0?1:0).ThenBy ...

  7. 选用适合的ORACLE优化器

    ORACLE的优化器共有3种: a.  RULE (基于规则)   b. COST (基于成本)  c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER ...

  8. element表格多选实现单选

    9.element多选表格实现单选 userChoose(selection, row) { console.log(selection,'selection') console.log(row,'r ...

  9. [C#] 汉字转拼音,支持多音字

    这份代码大概不是严格意义上正确的,但是一般场景用用应该没问题. using System; using System.Collections.Generic; using System.Linq; u ...

  10. poj 1787 Charlie's Change (多重背包可作完全背包)

    Charlie's Change Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3792   Accepted: 1144 ...