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 相关文章推荐
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
Dec 18 Javascript
莱鸟介绍window.print()方法
Jan 06 Javascript
浅谈Node.js:理解stream
Dec 08 Javascript
Websocket协议详解及简单实例代码
Dec 12 Javascript
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
form表单序列化详解(推荐)
Aug 15 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
Mar 23 jQuery
详解Vue 全局引入bass.scss 处理方案
Mar 26 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
JavaScript定时器常见用法实例分析
Nov 15 Javascript
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 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提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
Javascript获取某个月的天数
2018/05/30 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
2019/04/07 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
Python实现抓取页面上链接的简单爬虫分享
2015/01/21 Python
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
python实现多层感知器MLP(基于双月数据集)
2019/01/18 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
软件项目开发计划书
2014/05/01 职场文书
股东授权委托书范文
2014/09/13 职场文书
优秀党员个人总结
2015/02/14 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang