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 相关文章推荐
7款风格新颖的jQuery/CSS3菜单导航分享
Apr 23 Javascript
JQuery之focus函数使用介绍
Aug 20 Javascript
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
Nov 15 Javascript
Bootstrap响应式表格详解
May 23 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
简单的三步vuex入门
May 20 Javascript
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
浅谈关于iview表单验证的问题
Sep 29 Javascript
vue中的过滤器实例代码详解
Jun 06 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
vue+iview分页组件的封装
Nov 17 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 array_multisort() 函数的深入解析
2013/06/20 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
php readfile()修改文件上传大小设置
2017/08/11 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
List all the Databases on a SQL Server
2007/06/21 Javascript
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
javascript parseInt与Number函数的区别
2010/01/21 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
使用pandas实现csv/excel sheet互相转换的方法
2018/12/10 Python
Django 路由控制的实现
2019/07/17 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
python获取整个网页源码的方法
2020/08/03 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
What is EJB
2016/07/22 面试题
职业生涯规划书前言
2014/04/15 职场文书
教师党员承诺书2015
2015/01/21 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
追悼会答谢词范文
2015/09/29 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python