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广告代码
May 30 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 Javascript
前端设计师们最常用的JS代码汇总
Sep 25 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
Dec 07 Javascript
利用js判断手机是否安装某个app的多种方案
Feb 13 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 jQuery
vue 录制视频并压缩视频文件的方法
Jul 27 Javascript
详解微信小程序开发(项目从零开始)
Jun 06 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
Nov 02 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实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
javascript 播放器 控制
2007/01/22 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
HTML5 播放 RTSP 视频的实例代码
2019/07/29 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
泰国汽车、火车和轮渡票预订网站:Bus Online Ticket
2017/09/09 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
英国最大的天然和有机产品在线零售商之一:Big Green Smile
2020/05/06 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
兼职学生的自我评价
2013/11/24 职场文书
入股协议书范本
2014/04/14 职场文书
党员三严三实心得体会
2014/10/13 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
人力资源部工作计划
2019/05/14 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
改造DE1103三步曲
2022/04/07 无线电