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 相关文章推荐
jQuery 性能优化指南(2)
May 21 Javascript
理解Javascript_07_理解instanceof实现原理
Oct 15 Javascript
用jquery生成二级菜单的实例代码
Jun 24 Javascript
js文件Cookie存取值示例代码
Feb 20 Javascript
常用jQuery代码分享
Jul 14 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 Javascript
在 Angular中 使用 Lodash 的方法
Feb 11 Javascript
Vue.js 图标选择组件实践详解
Dec 03 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
Oct 16 Javascript
JavaScript前端实现压缩图片功能
Mar 06 Javascript
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
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 mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
js实现购物车功能
2018/06/12 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
Python json模块使用实例
2015/04/11 Python
在Python中使用模块的教程
2015/04/27 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
写给爸爸的道歉信
2014/01/15 职场文书
入党自我鉴定
2014/03/25 职场文书
入股协议书范本
2014/11/01 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
食品质检员岗位职责
2015/04/08 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电
python小型的音频操作库mp3Play
2022/04/24 Python
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android