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 相关文章推荐
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
javascript Array数组对象的扩展函数代码
May 22 Javascript
imgAreaSelect 中文文档帮助说明
Oct 08 Javascript
为jquery的ajaxfileupload增加附加参数的方法
Mar 04 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
Dec 14 Javascript
JavaScript通过代码调用Flash显示的方法
Feb 02 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
Jul 25 Javascript
JavaScript正则替换HTML标签功能示例
Mar 02 Javascript
Node.js 使用流实现读写同步边读边写功能
Sep 11 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
JavaScript提升机制Hoisting详解
Oct 23 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
Sep 16 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
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
利用JS制作万年历的方法
2017/08/16 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
在vue中使用jsonp进行跨域请求接口操作
2020/10/29 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
Python序列操作之进阶篇
2016/12/08 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
python实现汉诺塔算法
2021/03/01 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
欧洲第一中国智能手机和平板电脑网上商店:CECT-SHOP
2018/01/08 全球购物
置业顾问岗位职责
2014/03/02 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
正科级干部考察材料
2014/05/29 职场文书
2016年教师寒假学习心得体会
2015/10/09 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB