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'));
function daysInMonth(month, year) { return new Date(year, month, 0).getDate(); } //测试 daysInMonth('09','2011'); //输出: 30
/* 检查日期是否有效,如果无效则恢复到当月最后一天 */ 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); }
yang boleh digunakan untuk mengesahkan tarikh dalam format tertentu. Kaedah ini mengambil dua parameter: format tarikh dan rentetan tarikh. Jika rentetan tarikh sepadan dengan format, kaedah mengembalikan objek tarikh. Jika ia tidak sepadan, ralat akan dibangkitkan. Contohnya adalah seperti berikut: $.datepicker.parseDate
try { $.datepicker.parseDate('dd/mm/yy', '31/12/2020'); console.log('日期有效'); } catch (error) { console.log('日期无效'); }
pada borang. Anda boleh menentukan peraturan untuk setiap medan borang, termasuk medan tarikh. Contohnya: validate
$('form').validate({ rules: { dateField: { date: true } } });
$.datepicker.parseDate
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('日期范围有效'); }
$.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('日期无效'); }
Date
$.datepicker.parseDate
. Masalah yang berbeza hanya berbeza dalam keadaan pengesahan, seperti format tarikh, julat tarikh, tahun lompat, dll.
Atas ialah kandungan terperinci periksa jQuery jika tarikh sah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!