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

发布时间 - 2026-01-11 02:09:36    点击率:

废话不多说,直接上代码

/**
 * 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时间插件限制只能选择三个月的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# 时间插件lhgcalendar  # 给大家  # 必须要  # 的是  # 放在  # 希望能  # 月末  # 这篇  # 多说  # 可选择  # 小编  # 大家多多  # 结束时间  # input  # function  # split  # var  # ds  # addMoth  # color  # ccffcc 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何挑选最适合建站的高性能VPS主机?  如何快速搭建自助建站会员专属系统?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  网站制作价目表怎么做,珍爱网婚介费用多少?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  如何在IIS中新建站点并解决端口绑定冲突?  如何在阿里云域名上完成建站全流程?  详解jQuery停止动画——stop()方法的使用  英语简历制作免费网站推荐,如何将简历翻译成英文?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何快速搭建支持数据库操作的智能建站平台?  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  香港服务器网站卡顿?如何解决网络延迟与负载问题?  *服务器网站为何频现安全漏洞?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何配置Horizon来管理队列?(安装和使用)  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  网站制作免费,什么网站能看正片电影?  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  WordPress 子目录安装中正确处理脚本路径的完整指南  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  zabbix利用python脚本发送报警邮件的方法  昵图网官方站入口 昵图网素材图库官网入口  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  浅谈redis在项目中的应用  网站制作壁纸教程视频,电脑壁纸网站?  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  无锡营销型网站制作公司,无锡网选车牌流程?  微信小程序 wx.uploadFile无法上传解决办法  python中快速进行多个字符替换的方法小结  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  微信小程序 闭包写法详细介绍  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  如何确认建站备案号应放置的具体位置?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  Python文件流缓冲机制_IO性能解析【教程】  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  济南网站建设制作公司,室内设计网站一般都有哪些功能?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  如何在万网自助建站平台快速创建网站?