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 相关文章推荐
Node.js中require的工作原理浅析
Jun 24 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
Aug 27 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
javascript html5实现表单验证
Mar 01 Javascript
JS动态加载脚本并执行回调操作
Aug 24 Javascript
jQuery事件对象总结
Oct 17 Javascript
vue实现分页组件
Jun 16 Javascript
Vue插件从封装到发布的完整步骤记录
Feb 28 Javascript
layui 弹出层回调获取弹出层数据的例子
Sep 02 Javascript
angular inputNumber指令输入框只能输入数字的实现
Dec 03 Javascript
vue mvvm数据响应实现
Nov 11 Javascript
Vue如何实现变量表达式选择器
Feb 18 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
Openlayers显示瓦片网格信息的方法
2020/09/28 Javascript
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
Django添加sitemap的方法示例
2018/08/06 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python实现猜数字游戏
2020/03/25 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
2014年幼儿园德育工作总结
2014/12/17 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript