JavaScript实现时间日期校验的两种方案

作者:闭包旅人

时间:2026-10-23

浏览:176

本文介绍了JavaScript中实现时间日期校验的两种常用方法。首先展示了基于jQuery Validator插件的通用校验逻辑,用于确保开始时间小于结束时间;其次提供了结合Laydate日期组件的配置方案,通过change事件和done回调限制结束时间的可选范围,解决日期选择冲突问题。

文章目录

JavaScript时间日期校验方案概述

本文分享使用JavaScript进行时间日期校验的具体代码实现,供读者参考。

第一种方法是采用通用的时间校验逻辑。

基于jQuery Validator的通用校验


$.validator.addMethod("validatestart", function(value, element) {
  var start = new Date($('#startTime').val()).getTime();
  var end = new Date($('#endTime').val()).getTime();
  if(end < start){
   return false;
  }else{
   return true;
  }
 }, "开始时间必须小于结束时间!");

 $.validator.addMethod("validateend", function(value, element) {
  var start = new Date($('#startTime').val()).getTime();
  var end = new Date($('#endTime').val()).getTime();
  if(end < start){
   return false;
  }else{
   return true;
  }
 }, "结束时间必须大于开始时间!");

第二种方法适用于使用组件的场景,具体配置如下。

Laydate组件的时间范围限制配置


var startTime = "";
var endTime = "";
 
 startTime = laydate.render({
  elem : '#startTime',
  type : 'datetime',
  trigger: 'click', //使触发方式为click,解决一闪而过的问题
  change: function(value, dates, edate){  //实现双击可选中
   $(".layui-laydate").find("td[class='layui-this']").dblclick(function(){
    $(".layui-laydate").remove();
    $("#startTime").val(value);
    endTimeControl(date);  //控制结束时间的最小值
   });
  },
  done : function(value, date){
   endTimeControl(date);
  }
 });

 endTime = laydate.render({
   elem : '#endTime',
   type : 'datetime',
   trigger: 'click', //使触发方式为click,解决一闪而过的问题
   change: function(value, dates, edate){  //实现双击可选中
    $(".layui-laydate").find("td[class='layui-this']").dblclick(function(){
     $(".layui-laydate").remove();
     $("#endTime").val(value);
     startTimeControl(date);
    });
   },
   done : function(value, date){
    startTimeControl(date);
   }
 });

 /** 结束时间控制 */
 function endTimeControl(date){
  endTime.config.min = {
   year: date.year,
   month: date.month - 1,
   date: date.date,
   hours: 0,
   minutes: 0,
   seconds: 0
  };
 };
 
 /** 开始时间控制 */
 function startTimeControl(date){
  startTime.config.max = {
   year: date.year,
   month: date.month - 1,
   date: date.date,
   hours: 0,
   minutes: 0,
   seconds: 0
  };
 };

以上为本文的全部内容,希望这些示例能对读者的学习有所帮助,欢迎继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章