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进行后台页面布局控制DIV实现左右式
Jan 07 Javascript
javascript判断office版本示例
Apr 11 Javascript
js图片翻书效果代码分享
Aug 20 Javascript
jQuery事件处理的特征(事件命名机制)
Aug 23 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
JS 对java返回的json格式的数据处理方法
Dec 05 Javascript
微信小程序 label 组件详解及简单实例
Jan 10 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 Javascript
分享十三个最佳JavaScript数据网格库
Apr 07 Javascript
vue-cli如何快速构建vue项目
Apr 26 Javascript
微信web端后退强制刷新功能的实现代码
Mar 04 Javascript
JS实现横向轮播图(初级版)
Jun 24 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
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
javascript基础知识之html5轮播图实例讲解(44)
2017/02/17 Javascript
图解Javascript——作用域、作用域链、闭包
2017/03/21 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
Python 用户登录验证的小例子
2013/03/06 Python
python编写的最短路径算法
2015/03/25 Python
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Python 打印中文字符的三种方法
2018/08/14 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
Python字典dict常用方法函数实例
2020/11/09 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
证婚人经典证婚词
2014/01/09 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
项目合作协议书范本
2014/04/16 职场文书
社区先进事迹材料
2014/05/19 职场文书
大学新闻系求职信
2014/06/03 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
实习单位意见
2015/06/04 职场文书
实习证明模板
2015/06/16 职场文书
小学美术教学反思
2016/02/17 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python