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 相关文章推荐
如何让动态插入的javascript脚本代码跑起来。
Jan 09 Javascript
js点击页面其它地方将某个显示的DIV隐藏
Jul 12 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
js限制checkbox选中个数以限制六个为例
Jul 15 Javascript
jQuery .tmpl() 用法示例介绍
Aug 21 Javascript
谈谈对offsetleft兼容性的理解
Nov 11 Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 Javascript
基于JavaScript实现评论框展开和隐藏功能
Aug 25 Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
微信小程序自定义多列选择器使用详解
Jun 21 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代码的53条建议
2008/03/27 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
JS获取地址栏参数的几种方法小结
2014/02/28 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
JS中promise化微信小程序api
2018/04/12 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
JS轮播图的实现方法2
2020/08/25 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
Python列表计数及插入实例
2014/12/17 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
课堂教学改革实施方案
2014/03/17 职场文书
教师年度考核评语
2014/04/28 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
授权委托书
2015/01/28 职场文书
护士年终个人总结
2015/02/13 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
初中思想品德教学反思
2016/02/24 职场文书
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS