最近项目中使用了laydate插件,需要限制开始时间和结束时间的输入

1.type=date

要求:周期开始时间和周期结束时间以天为单位,结束时间不能早于开始时间,可以是同一天。

周期开始时间:<input class="layui-input" type="text" id="CycleStartTime">
周期结束时间:<input class="layui-input" type="text" id="CycleEndTime">
 
var cycleStart = laydate.render({
  elem: '#CycleStartTime'
  ,type: 'date'
  ,btns: ['confirm']
  ,done: function(value, date){
    cycleEnd.config.min = getDateArray(date);
  }
});
var cycleEnd = laydate.render({
  elem: '#CycleEndTime'
  ,type: 'date'
  ,btns: ['confirm']
  ,done: function(value, date){
    cycleStart.config.max = getDateArray(date);
  }
});
function getDateArray(date){
  var formatDate = {};
  formatDate.year = date.year;
  formatDate.month = date.month - 1;
  formatDate.date = date.date;
  return formatDate;
}
 

2.type=datetime

要求:开始时间早于结束时间,且不能相同

开始时间:<input class="layui-input" type="text" id="StartTime">
结束时间:<input class="layui-input" type="text" id="EndTime">
 
var editStart = laydate.render({
  elem: '#StartTime'
  ,type: 'datetime'
  ,btns: ['confirm']
  ,done: function(value, date) {
    editEnd.config.min = {
      year: date.year,
      month: date.month - 1,
      date: date.date,
      hours: date.hours,
      minutes: date.minutes,
      seconds: date.seconds + 1
    };
    if (date.seconds == 59) {
      editEnd.config.min.minutes = date.minutes + 1;
      editEnd.config.min.seconds = 0;
    }
    if (date.seconds == 59 && date.minutes == 59) {
      editEnd.config.min.hours = date.hours + 1;
      editEnd.config.min.minutes = 0;
      editEnd.config.min.seconds = 0;
    }
    if (date.seconds == 59 && date.minutes == 59 && date.hours == 23) {
      editEnd.config.min.date = date.date + 1;
      editEnd.config.min.hours = 0;
      editEnd.config.min.minutes = 0;
      editEnd.config.min.seconds = 0;
    }
  }
});
var editEnd = laydate.render({
  elem: '#EndTime'
  ,type: 'datetime'
  ,btns: ['confirm']
  ,done: function(value, date) {
    editStart.config.max = {
      year: date.year,
      month: date.month - 1,
      date: date.date,
      hours: date.hours,
      minutes: date.minutes,
      seconds: date.seconds - 1
    }
    if (date.seconds == 0) {
      editStart.config.max.minutes = date.minutes - 1;
      editStart.config.max.seconds = 59;
    }
    if (date.seconds == 0 && date.minutes == 0) {
      editStart.config.max.hours = date.hours - 1;
      editStart.config.max.minutes = 59;
      editStart.config.max.seconds = 59;
    }
    if (date.seconds == 0 && date.minutes == 0 && date.hours == 0) {
      editStart.config.max.date = date.date - 1;
      editStart.config.max.hours = 23;
      editStart.config.max.minutes = 59;
      editStart.config.max.seconds = 59;
    }
  }
});
 
说明:输入限制的情况下,必须去掉【清空】、【现在】按钮。
 

3.type=time

要求:开始时间早于结束时间,且不能相同

开始时间:<input class="layui-input" type="text" id="StartTime_add">
结束时间:<input class="layui-input" type="text" id="EndTime_add">
var addStart = laydate.render({
  elem: '#StartTime_add'
  ,type: 'time'
  ,btns: ['confirm']
  ,done: function(value, date) {
    addEnd.config.min = {
      year: date.year,
      month: date.month - 1,
      date: date.date,
      hours: date.hours,
      minutes: date.minutes,
      seconds: date.seconds + 1
    };
    if (date.seconds == 59) {
      addEnd.config.min.minutes = date.minutes + 1;
      addEnd.config.min.seconds = 0;
    }
    if (date.seconds == 59 && date.minutes == 59) {
      addEnd.config.min.hours = date.hours + 1;
      addEnd.config.min.minutes = 0;
      addEnd.config.min.seconds = 0;
    }
    if (date.seconds == 59 && date.minutes == 59 && date.hours == 23) {
      $('.laydate-footer-btns').css({
        'cursor': 'not-allowed',
        'color': '#d2d2d2'
      });
      alert('开始时间不允许选择23:59:59');
    }
  }
});
var addEnd = laydate.render({
  elem: '#EndTime_add'
  ,type: 'time'
  ,btns: ['confirm']
  ,done: function(value, date) {
    addStart.config.max = {
      year: date.year,
      month: date.month - 1,
      date: date.date,
      hours: date.hours,
      minutes: date.minutes,
      seconds: date.seconds - 1
    }
    if (date.seconds == 0) {
      addStart.config.max.minutes = date.minutes - 1;
      addStart.config.max.seconds = 59;
    }
    if (date.seconds == 0 && date.minutes == 0) {
      addStart.config.max.hours = date.hours - 1;
      addStart.config.max.minutes = 59;
      addStart.config.max.seconds = 59;
    }
    if (date.seconds == 0 && date.minutes == 0 && date.hours == 0) {
      $('.laydate-footer-btns').css({
        'cursor': 'not-allowed',
        'color': '#d2d2d2'
      });
      alert('结束时间不允许选择00:00:00');
    }
  }
});
说明:开始时间不允许选择23:59:59,结束时间不允许选择00:00:00。

laydate type=time/datetime/date 开始时间和结束时间的输入限制的更多相关文章

  1. My97DatePicker:开始时间和结束时间的最大间隔为1个月30天,并且不大于当前时间(3种方法)

    问题的背景 在之前做Web项目的时候,开始时间和结束时间,只有2个要求: 1.开始时间必须小于等于结束时间,不能超过当前时间. 2.结束时间必须大于等于开始时间,不能超过当前时间. 由于开始时间不大于 ...

  2. myDate97 设置开始时间和结束时间

      myDate97 设置开始时间和结束时间 CreationTime--2018年8月28日16点46分 Author:Marydon 1.简单示例 第一步:引入My97DatePicker/Wda ...

  3. datepicker约束开始时间和结束时间

    datepicker约束开始时间和结束时间作用就是:选择要搜索的日期范围. <!DOCTYPE html> <html lang="en"> <hea ...

  4. elementui的时间选择器开始时间和结束时间的限制

    开始时间不能大于结束时间 html代码部分 方法部分 开始时间和结束时间可以选同一天 <template> <div class="range-wrapper"& ...

  5. 更改hadoop集群yarn的webui中的开始时间和结束时间为本地时间

    yarn集群的webui地址为:http://rm:8088 执行任务后,任务的开始时间和结束时间都是utc时间,查看很不方便. 查找相关资料发现hadoop有补丁包,补丁地址:https://iss ...

  6. c# 获取 本周、本月、本季度、本年 的开始时间或结束时间

    #region 获取 本周.本月.本季度.本年 的开始时间或结束时间 /// <summary> /// 获取结束时间 /// </summary> /// <param ...

  7. My97DatePicker 日期控制,开始时间不能>结束时间,结束时间不能<开始时间

    <li>日期: <input type="text" style="margin-top: 5px;" value="${begin ...

  8. java获取本月开始时间和结束时间、上个月第一天和最后一天的时间以及当前日期往前推一周、一个月

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.uti ...

  9. easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大

    easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大 >>>>>>>>>>> ...

随机推荐

  1. 2018-12-25-Roslyn-如何使用-MSBuild-Copy-复制文件

    title author date CreateTime categories Roslyn 如何使用 MSBuild Copy 复制文件 lindexi 2018-12-25 9:35:8 +080 ...

  2. 数据库lib7第4题创建存储过程

    1. 传入2个字符串变量,其中,每个字符串是用分号(:)分隔的字串形式, 比如str1=’ab12;ab;cccc;tty’, str2=’1;6sf;8fffff;dd’, 注意,字符串是用户输入的 ...

  3. bash 小技巧

    CTRL-R (reverse find),按下之后敲几个字母就能在最近打过的命令里搜索.

  4. jq 添加内容

    向页面动态添加内容,一般用于动态网页,需要即时请求数据,并更新在页面上,使用append()更多一些,empty() - 清空所有子元素,remove() - 清除自身所有子元素. append() ...

  5. jq动态添加代码监听问题

     $(document).on('click', '.class', function() { console.log($(this).attr('id')); }); 

  6. IMEI校验思路及代码

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. php 练习 1

    php5 echo 和 print 语句 在PHP 中, 有两种基本的输出方法:echo 和print . 在本教程中,我们几乎在每个例子中都会用到echo和print.因此,本节为您讲解更多关于这两 ...

  8. COGS 775 山海经

    COGS 775 山海经 思路: 求最大连续子段和(不能不选),只查询,无修改.要求输出该子段的起止位置. 线段树经典模型,每个节点记录权值和sum.左起最大前缀和lmax.右起最大后缀和rmax.最 ...

  9. Python 常量

  10. Quick BI 3.0 - 强大的多维分析表格:交叉表

    写在开头 对于普通的表格展示数据,相信大家都非常熟悉了,今天给大家介绍的是BI领域的分析利器-交叉表,这个在BI分析场景中使用占比最多的分析利器.通过交叉表对数据的承载和管理,用户可以一目了然地分析出 ...