layui时间插件实现动态限制可选时间范围和统计时间间隔

<script>
layui.use('laydate', function() {
  var laydate = layui.laydate;
  var start = laydate.render({ //开始时间
    elem: '#startDate',
    type: 'datetime',
    format: 'yyyy-MM-dd HH:mm:ss',
    done: function(value, date) { //点击确定回调事件
      endMax = end.config.max;
      end.config.min = date;
      end.config.min.month = date.month - 1;
      timeOperation(value, $("#endDate").val())
    },
    change: function(value, date, endDate) { //点击改变回调事件
      var timestamp2 = Date.parse(new Date(value));
      timestamp2 = timestamp2 / 1000;
      end.config.min = timestamp2;
      end.config.min.month = date.month - 1;
    }
  });
  var end = laydate.render({ //结束时间
    elem: '#endDate',
    type: 'datetime',
    format: 'yyyy-MM-dd HH:mm:ss',
    done: function(value, date) { //点击确定回调事件
      if ($.trim(value) == '') {
        var curDate = new Date();
        date = {
          'date': curDate.getDate(),
          'month': curDate.getMonth() + 1,
          'year': curDate.getFullYear()
        };
      }
      start.config.max = date;
      start.config.max.month = date.month - 1;
      timeOperation($("#startDate").val(), value)
    }
  });
});

//统计时间间隔
function timeOperation(startTimeStr, endTimeStr) {
  if (startTimeStr != "" && startTimeStr != null && endTimeStr != "" && endTimeStr != null) {
    //开始时间
    var startDate = new Date(startTimeStr.replace("-", "/").replace("-", "/"));
    //结束时间
    var endDate = new Date(endTimeStr.replace("-", "/").replace("-", "/"));
    if (endDate < startDate) {
      layer.msg("开始时间不能大于结束时间!")
      return false;
    }
    $("#timeSum").html((endDate.getTime() - startDate.getTime()) / 1000)
    console.log((endDate.getTime() - startDate.getTime()) / 1000 + "秒")
    console.log(parseInt((endDate.getTime() - startDate.getTime()) / 1000 / 60) + "分" + (endDate.getTime() - startDate.getTime()) /
      1000 % 60 + "秒")
    console.log(parseInt((endDate.getTime() - startDate.getTime()) / 1000 / 60 / 60) + "时" +
      parseInt((endDate.getTime() - startDate.getTime()) / 1000 / 60 % 60) + "分" +
      (endDate.getTime() - startDate.getTime()) / 1000 % 60 + "秒")
  }
}
</script>

原文地址:https://www.cnblogs.com/LinTianwen/p/13086280.html