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 相关文章推荐
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
checkbox勾选判断代码分析
Jun 11 Javascript
jQuery+AJAX实现网页无刷新上传
Feb 22 Javascript
iframe中子父类窗口调用JS的方法及注意事项
Aug 25 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
Aug 03 Javascript
jQuery DateTimePicker 日期和时间插件示例
Jan 22 Javascript
Javascript封装id、class与元素选择器方法示例
Mar 13 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
详解node child_process模块学习笔记
Jan 24 Javascript
Node.js文件编码格式的转换的方法
Apr 27 Javascript
解决pycharm双击但是无法打开的情况
Oct 31 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
ThinkPHP登录功能的实现方法
2014/08/20 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
js实现日期级联效果
2014/01/23 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
js实现右键菜单功能
2016/11/28 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
JSON创建键值对(key是中文或者数字)方式详解
2017/08/24 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
vue axios post发送复杂对象问题
2019/06/04 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
pycharm安装图文教程
2017/05/02 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
使用python3实现操作串口详解
2019/01/01 Python
Python跳出多重循环的方法示例
2019/07/03 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
numpy实现RNN原理实现
2021/03/02 Python
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
大学生求职简历的自我评价
2013/10/14 职场文书
家长通知书教师评语
2014/04/17 职场文书
小学清明节活动总结
2014/07/04 职场文书
2014年协会工作总结
2014/11/22 职场文书