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 构建客户/服务分离的链接模型中Table分页代码效率初探
Jan 22 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
May 07 Javascript
chrome浏览器不支持onmouseleave事件的解决技巧
May 31 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
Sep 29 Javascript
jQuery老黄历完整实现方法
Jan 16 Javascript
javascript简单实现滑动菜单效果的方法
Jul 27 Javascript
js实现二级菜单渐隐显示
Nov 03 Javascript
jQuery AjaxUpload 上传图片代码
Feb 02 Javascript
jquery+Jscex打造游戏力度条
Sep 12 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
用webAPI实现图片放大镜效果
Nov 23 Javascript
微信小程序视频弹幕发送功能的实现
Dec 28 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
基于mysql的论坛(2)
2006/10/09 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
Laravel 队列使用的实现
2019/01/08 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
2016/01/23 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
html-webpack-plugin修改页面的title的方法
2020/06/18 Javascript
python搭建简易服务器分析与实现
2012/12/15 Python
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
python实现socket客户端和服务端简单示例
2014/02/24 Python
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python MD5加密实例详解
2017/08/02 Python
python编程之requests在网络请求中添加cookies参数方法详解
2017/10/25 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Python数学形态学实例分析
2019/09/06 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
为什么要做架构设计
2015/07/08 面试题
客户代表自我评价范例
2013/09/24 职场文书
医学专业应届生的自我评价
2014/02/28 职场文书
房屋继承公证书
2014/04/10 职场文书
教师年终个人总结
2015/02/11 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
python中取整数的几种方法
2021/11/07 Python