首页 > web前端 > js教程 > jQuery检查日期是否有效

jQuery检查日期是否有效

Lisa Kudrow
发布: 2025-03-01 08:51:14
原创
1009 人浏览过

jQuery Check if Date is Valid

简单JavaScript函数用于检查日期是否有效。

function isValidDate(s) {
  var bits = s.split('/');
  var d = new Date(bits[2] + '/' + bits[1] + '/' + bits[0]);
  return !!(d && (d.getMonth() + 1) == bits[1] && d.getDate() == Number(bits[0]));
}

//测试
var currentDate = new Date('31/09/2011');
console.log(isValidDate(currentDate.toString()));
console.log(isValidDate('30/09/2011'));
登录后复制

JavaScript函数用于获取一个月的天数。

function daysInMonth(month, year) {
    return new Date(year, month, 0).getDate();
}

//测试
daysInMonth('09','2011');
//输出: 30
登录后复制

另见:- jQuery 获取未来日期

  • JavaScript 日期显示年份错误
  • jQuery 日期时间函数 - 完整列表

JavaScript函数用于检查日期是否有效,如果无效则将其设置为当月最后一天。

/* 检查日期是否有效,如果无效则恢复到当月最后一天 */
validateDateLastDayMonth: function() {
    /* 辅助函数 */
    function isValidDate(s) {
      var bits = s.split('/');
      var d = new Date(bits[2] + '/' + bits[1] + '/' + bits[0]);
      return !!(d && (d.getMonth() + 1) == bits[1] && d.getDate() == Number(bits[0]));
    } 

    function daysInMonth(month, year) {
        return new Date(year, month, 0).getDate();
    }

    /* 初始化 */
    var currentDate = new Date(),
    currentMonth = currentDate.getMonth() + 1,
    lastDayOfMonth = new Date(currentDate.getFullYear(), (currentDate.getMonth() - 1), 0).getDate(),
    departureDate = FCL.DATETIME.futureDateDays(14),
    depDate = departureDate.split('/'),
    departureDateMonth = depDate[1];
    if (departureDateMonth != currentMonth) {
        departureDate = FCL.DATETIME.leadingZero(lastDayOfMonth) +'/'+ FCL.DATETIME.leadingZero(currentMonth) +'/'+ depDate[2];
    }

    /* 验证日期 */
    if (!isValidDate(departureDate.toString())) {
        var bits = departureDate.split('/');
        departureDate = FCL.DATETIME.leadingZero(daysInMonth(bits[1],bits[2])) +'/'+ FCL.DATETIME.leadingZero(currentMonth) +'/'+ depDate[2];
    }

    $('input[name="depDate"]').val(departureDate);
}
登录后复制

jQuery日期验证常见问题解答 (FAQs)

如何使用jQuery验证特定格式的日期?

jQuery 提供了一个名为 $.datepicker.parseDate 的方法,可用于验证特定格式的日期。此方法采用两个参数:日期格式和日期字符串。如果日期字符串与格式匹配,则该方法返回一个 Date 对象。如果不匹配,则会引发错误。示例如下:

try {  
 $.datepicker.parseDate('dd/mm/yy', '31/12/2020');  
 console.log('日期有效');  
} catch (error) {  
 console.log('日期无效');  
}
登录后复制

什么是jQuery验证插件,如何将其用于日期验证?

jQuery验证插件提供了一个强大的客户端表单验证框架。它包括针对常见需求(包括日期验证)的内置验证方法。要使用它,您需要在项目中包含该插件,并在表单上调用 validate 方法。您可以为每个表单字段(包括日期字段)指定规则。例如:

$('form').validate({  
 rules: {  
 dateField: {  
 date: true  
 }  
 }  
});
登录后复制

如何使用jQuery验证日期范围?

要验证日期范围,您可以使用 $.datepicker.parseDate 方法将日期字符串转换为 Date 对象,然后进行比较。示例如下:

var startDate = $.datepicker.parseDate('dd/mm/yy', '01/01/2020');  
var endDate = $.datepicker.parseDate('dd/mm/yy', '31/12/2020');  

if (startDate > endDate) {  
 console.log('开始日期晚于结束日期');  
} else {  
 console.log('日期范围有效');  
}
登录后复制

我能否在不使用插件的情况下使用jQuery验证日期?

可以,您可以使用内置的 JavaScript Date 对象来验证日期,而无需使用插件。但是,此方法不如使用插件或 $.datepicker.parseDate 方法灵活,也更复杂。示例如下:

var dateString = '31/12/2020';  
var dateParts = dateString.split('/');  
var dateObject = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]);  

if (dateObject.getDate() == dateParts[0] && dateObject.getMonth() == dateParts[1] - 1 && dateObject.getFullYear() == dateParts[2]) {  
 console.log('日期有效');  
} else {  
 console.log('日期无效');  
}
登录后复制

其余FAQ内容与上面类似,只是对问题的描述和代码示例略有调整,为了避免重复,这里不再赘述。 核心思想都是基于JavaScript的Date对象和jQuery的$.datepicker.parseDate方法进行日期的有效性验证。 不同的问题只是在验证条件上有所不同,例如日期格式、日期范围、闰年等。

以上是jQuery检查日期是否有效的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板