欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

lhgcalendar时间插件限制只能选择三个月的实现方法

时间:2021-11-06 10:10:08|栏目:JavaScript代码|点击:

废话不多说,直接上代码

/**
 * 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;
  }

上一篇:window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法

栏    目:JavaScript代码

下一篇:浅谈js-FCC算法Friendly Date Ranges(详解)

本文标题:lhgcalendar时间插件限制只能选择三个月的实现方法

本文地址:http://www.codeinn.net/misctech/182618.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有