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的9个陷阱及评点分析
May 16 Javascript
js过滤数组重复元素的方法
Sep 05 Javascript
分享Javascript中最常用的55个经典小技巧
Nov 29 Javascript
js实现编辑div节点名称的方法
Dec 17 Javascript
一个可复用的vue分页组件
May 15 Javascript
vue router demo详解
Oct 13 Javascript
javascript按钮禁用和启用的效果实例代码
Oct 29 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
Vue2.0结合webuploader实现文件分片上传功能
Mar 09 Javascript
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
JavaScript中Object、map、weakmap的区别分析
Dec 15 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 日,周,月点击排行统计
2012/01/11 PHP
php生成图形(Libchart)实例
2013/11/06 PHP
浅谈laravel框架与thinkPHP框架的区别
2019/10/23 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
解决Jquery鼠标经过不停滑动的问题
2014/03/03 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件的方法
2017/02/08 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
JavaScript函数式编程(Functional Programming)纯函数用法分析
2019/05/22 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
[46:59]完美世界DOTA2联赛PWL S2 GXR vs Ink 第二场 11.19
2020/11/20 DOTA
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python基于property()函数定义属性
2020/01/22 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
您的网上新华书店:文轩网
2016/08/24 全球购物
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
美国五金商店:Ace Hardware
2018/03/27 全球购物
标准自荐信范文
2014/01/29 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
初中毕业生自我评价
2015/03/02 职场文书
职场新人知识:如何制定一份合理的工作计划?
2019/09/11 职场文书
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS