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 二分法(数组array)
Apr 24 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
AngularJS使用ng-repeat指令实现下拉框
Aug 23 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
基于jQuery ligerUI实现分页样式
Sep 18 Javascript
详解Node.js中的事件机制
Sep 22 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
深入浅析JS中的严格模式
Jun 04 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
Aug 20 Javascript
用vue写一个日历
Nov 02 Javascript
nuxt.js写项目时增加错误提示页面操作
Nov 05 Javascript
JavaScript的function函数详细介绍
Nov 20 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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php学习之变量的使用
2011/05/29 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
php生成二维码的几种方式整理及使用实例
2013/06/03 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
php查询whois信息的方法
2015/06/08 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
Vue axios 中提交表单数据(含上传文件)
2017/07/06 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
python提取内容关键词的方法
2015/03/16 Python
深入浅出学习python装饰器
2017/09/29 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
Python语言编写智力问答小游戏功能
2020/10/13 Python
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
开业主持词
2014/03/21 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
学位证书委托书
2014/09/30 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
医院病假条怎么写
2015/08/17 职场文书
优秀创业计划书分享
2019/07/19 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers