lhgcalendar时间插件限制只能选择三个月的实现方法


Posted in Javascript onJuly 03, 2017

废话不多说,直接上代码

/**
 * lhgcalendar时间插件限制只能选择三个月
 * @d 获取到的开始时间
 * @m 要限制的时间的长度(月)
 *将最后获得的结束时间与开始时间存放在input中
 */
  function addMoth(d,m){
    var ds=d.split('-');
    var ds1 = ds[1]-1+m;
    var ds2 = ds[2];
    d=new Date( ds[0],ds1,ds[2]);
    var cond1 = parseInt(ds[0]) % 4 == 0; //条件1:年份必须要能被4整除
    var cond2 = parseInt(ds[0]) % 100 != 0; //条件2:年份不能是整百数
    var cond3 = parseInt(ds[0]) % 400 ==0;
    if(cond1 && cond2 || cond3 ){ //如果是闰年,选择后面的时间可以到月末
      if(parseInt(ds2) == 29){
        ds2 = 31
      }
    }else {
      if (parseInt(ds2) == 28) {
        ds2 = 31
      }
    }
    if(ds1 < 10){
      ds1 = '0'+ ds1 ;//月份小于10加0
    }
    if(ds1 > 12){//跨年年份+1
      ds1 = ds1 - 12;
      ds[0] = parseInt(ds[0]) + 1;
      var cond1 = parseInt(ds[0]) % 4 == 0; //条件1:年份必须要能被4整除
      var cond2 = parseInt(ds[0]) % 100 != 0; //条件2:年份不能是整百数
      var cond3 = parseInt(ds[0]) % 400 ==0;
      if(cond1 && cond2 || cond3 ){
        if(parseInt(ds1) == 2){//如果到2月,闰年最大29,平年28
          ds2 = 29
        }
      }else {
        if (parseInt(ds1) == 2) {
          ds2 = 28
        }
      }
      ds1 = '0'+ ds1 ;
    }
    if( ds2 < 10){
      ds2 = '0' +ds2;
    }
    d1 = new Date( ds[0],ds1,ds2);
    return ds[0] + '-' + ds1 +'-'+ds2;
  }
  //如果开始选择结束日期,给结束日期减去三个月
  function reduceMoth(d,m){
    var ds=d.split('-');
    if(ds[1] == 2){//如果选择的是2月,开始时间可以选到前一年11月30
      ds[2] = 30
    }
    var ds1 = ds[1]-1-m;
    var ds2 = ds[2];
    d=new Date( ds[0],ds1,ds[2]);

    if( ds1 >= 1 && ds1 < 10){
      ds1 = '0'+ ds1 ;
    }

    if(ds1 < 1){//跨年,开始时间年份-1,月份+12
      ds[0] = parseInt(ds[0]) - 1;
      ds1 = ds1 + 12;

    }

    if(ds2 < 10){
      ds2 = '0' +ds2;
    }
    var cond1 = parseInt(ds[0]) % 4 == 0; //条件1:年份必须要能被4整除
    var cond2 = parseInt(ds[0]) % 100 != 0; //条件2:年份不能是整百数
    var cond3 = parseInt(ds[0]) % 400 ==0;
    if(cond1 && cond2 || cond3 ){//如果开始时间到闰年2月可选择29,平年28
      if(parseInt(ds1) == 2){
        ds2 = 29
      }
    }else {
      if(parseInt(ds1) == 2){
        ds2 = 28
      }
    }
    d1 = new Date( ds[0],ds1,ds2);
    return ds[0] + '-' + ds1 +'-'+ds2;
  }

以上这篇lhgcalendar时间插件限制只能选择三个月的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 对象介绍
Jan 20 Javascript
js中有关IE版本检测
Jan 04 Javascript
javascript 自定义回调函数示例代码
Sep 26 Javascript
onclick和onblur冲突问题的快速解决方法
Apr 28 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
原生js实现选项卡功能
Mar 08 Javascript
jQuery实现web页面樱花坠落的特效
Jun 01 jQuery
原生JS实现随机点名项目的实例代码
Apr 30 Javascript
微信小程序开发技巧汇总
Jul 15 Javascript
JavaScript的变量声明与声明提前用法实例分析
Nov 26 Javascript
vue解决跨域问题(推荐)
Nov 10 Javascript
JavaScript生成图形验证码
Aug 24 #Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 #Javascript
mac上node.js环境的安装测试
Jul 03 #Javascript
关于页面刷新vuex数据消失问题解决方案
Jul 03 #Javascript
解决VUEX刷新的时候出现数据消失
Jul 03 #Javascript
vue.js学习之UI组件开发教程
Jul 03 #Javascript
用js将long型数据转换成date型或datetime型的实例
Jul 03 #Javascript
You might like
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
JavaScript电子时钟倒计时
2016/01/09 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
python计数排序和基数排序算法实例
2014/04/25 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
python 定时修改数据库的示例代码
2018/04/08 Python
在OpenCV里使用Camshift算法的实现
2019/11/22 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
python 装饰器的基本使用
2021/01/13 Python
英国建筑用品在线:Building Supplies Online(BSO)
2018/04/30 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
计算机专业推荐信范文
2013/11/20 职场文书
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
高中打架检讨书
2014/02/13 职场文书
人事专员工作职责
2014/02/22 职场文书
大学应届生的自我评价
2014/03/06 职场文书
英文感谢信格式
2015/01/21 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
vue实现滑动解锁功能
2022/03/03 Vue.js