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 Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
Mar 17 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
js 得到文件后缀(通过正则实现)
Jul 08 Javascript
js获取事件源及触发该事件的对象
Oct 24 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
Jan 23 Javascript
js 连续赋值的简单实现
Jun 13 Javascript
简述JS控制台的使用
Jul 15 Javascript
深入浅析Node环境和浏览器的区别
Aug 14 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 Javascript
swiper自定义分页器的样式
Sep 14 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
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
浅谈json_encode用法
2015/03/05 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
javascript 贪吃蛇实现代码
2008/11/22 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
jQuery源码中的chunker 正则过滤符分析
2012/07/31 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
2015/03/26 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
微信小程序实现上传照片代码实例解析
2020/08/04 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
vue中activated的用法
2021/01/03 Vue.js
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
python实现移动木板小游戏
2020/10/09 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
button在IE6/7下的黑边去除方案
2012/12/24 HTML / CSS
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
幼儿园大班新学期寄语
2014/01/18 职场文书
网上蛋糕店创业计划书
2014/01/24 职场文书
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
食品安全演讲稿
2014/09/01 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书