📅  最后修改于: 2023-12-03 14:55:11.348000             🧑  作者: Mango
在程序设计中,我们经常会遇到需要判断日期是否有效的问题,特别是在表单验证等场景中。本文将介绍如何使用Javascript来判断日期是否有效。
闰年是指能够被4整除但不能被100整除的年份,或者能够被400整除的年份。判断一个年份是否是闰年,可以使用以下代码:
function isLeapYear(year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
每个月份有一个特定的天数,其中2月份的天数与是否是闰年有关。以下是判断月份天数的代码:
function getDaysInMonth(year, month) {
var days = 31;
if (month == 4 || month == 6 || month == 9 || month == 11) {
days = 30;
} else if (month == 2) {
days = isLeapYear(year) ? 29 : 28;
}
return days;
}
有了判断闰年和判断月份的函数,我们就可以来判断日期是否有效了。以下是判断日期是否有效的代码:
function isValidDate(dateString) {
var components = dateString.split('/');
var year = parseInt(components[2]);
var month = parseInt(components[1]);
var day = parseInt(components[0]);
if (year < 1000 || year > 3000 || month < 1 || month > 12) {
return false;
}
var daysInMonth = getDaysInMonth(year, month);
if (day < 1 || day > daysInMonth) {
return false;
}
return true;
}
如上代码中,我们首先将日期字符串按照"/"分割成年、月、日三个部分。然后判断年份是否在1000到3000之间,月份是否在1到12之间。接着计算当月天数,判断日期是否在有效范围内,从而返回是否是有效日期。
以上是使用Javascript来判断日期是否有效的方法,可以适用于表单验证、数据管理等场景。
附上一个测试示例:
console.log(isValidDate('31/12/2022')); // true
console.log(isValidDate('31/02/2021')); // false
console.log(isValidDate('29/02/2021')); // false
console.log(isValidDate('31/13/2022')); // false
从上述示例中,可看出来代码的可行性,现在您已经学会基本的校验日期的知识!