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 相关文章推荐
BOM与DOM的区别分析
Oct 26 Javascript
微信小程序 教程之事件
Oct 18 Javascript
微信小程序 网络请求(post请求,get请求)
Jan 17 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
浅谈关于angularJs中使用$.ajax的注意点
Aug 12 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
原生JS实现自定义下拉单选选择框功能
Oct 12 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
Jan 06 Javascript
五分钟搞懂Vuex实用知识(小结)
Aug 12 Javascript
javascript实现简单打字游戏
Oct 29 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
Apr 29 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
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
Vue.directive()的用法和实例详解
2018/03/04 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
微信小程序监听用户登录事件的实现方法
2019/11/11 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
Python中tell()方法的使用详解
2015/05/24 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
巴西购物网站:Onofre Agora
2020/06/08 全球购物
优秀毕业生求职信范文
2014/01/02 职场文书
校园招聘策划书
2014/01/09 职场文书
电脑专业个人求职信范文
2014/02/04 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
网络信息安全承诺书
2014/03/26 职场文书
出生证明公证书
2014/04/09 职场文书
运动会演讲稿200字
2014/08/25 职场文书
考研复习计划
2015/01/19 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python