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

jQuery檢查日期是否有效

Lisa Kudrow
Lisa Kudrow原創
2025-03-01 08:51:141008瀏覽

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