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 Select标记中options操作方法集合
Oct 22 Javascript
让js弹出窗口居前显示的实现方法
Jul 10 Javascript
根据选择不同的下拉值出现相对应的文本输入框
Aug 01 Javascript
使用JQuery实现智能表单验证功能
Mar 08 Javascript
JavaScript编码风格指南(中文版)
Aug 26 Javascript
web前端开发upload上传头像js示例代码
Oct 22 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
详解angularjs 关于ui-router分层使用
Jun 12 Javascript
详解小程序原生使用ES7 async/await语法
Aug 06 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
Nov 05 Javascript
利用Vue构造器创建Form组件的通用解决方法
Dec 03 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 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一些常用的正则表达式字符的一些转换
2008/07/29 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php fread读取文件注意事项
2016/09/24 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
Thinkphp实现短信验证注册功能
2016/10/18 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
js定时器实例分享
2016/12/20 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
Python itertools模块详解
2015/05/09 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Django框架验证码用法实例分析
2019/05/10 Python
python实现五子棋游戏
2019/06/18 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
详解如何修改jupyter notebook的默认目录和默认浏览器
2021/01/24 Python
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
三好学生评语大全
2014/12/29 职场文书
总经理助理岗位职责
2015/01/31 职场文书
党员个人总结范文
2015/02/14 职场文书
暑假生活随笔
2015/08/15 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技