background image

print"You are too young to proceed.";
exit();
}
?>

这个函数首先使用 checkdate()来确保$month. $day 和$year 表示的都是有效日期。通过多次比较来保证所
提供的日期处在$min_age 和$max_age

 

所设置的范围之内。

如果$year 未包含在$min_year 和$max_year 之间,表示日期处在合理的范围之内,所以函数返
回 true。如果$year 没有包含在设定的范围之内,则还需进行额外的验证。如果$year 等于
$max_year(例如,2002 年,$year 是 1984),$month 必须是在当前的月份之前。如果$month
等于当前月份,$day 就必须在当天或者是之前的某一天。如果$year 等于$min_year(例如,在
2002 年,$year 是 1880),$month 必须是在当前月份之后。如果$month 等于当前月份,$day
就必须在当天以后。如果不符合以上任何一个条件,则表明所提供的日期位于可以接受的范围之外,
函数就会返回 false。

如果所提供的日期按当前日期算正好是$min_age 年,函数会返回 true;但如果提供的日期按当前
日期算正好过了$max_age 年,函数会返回 false。也就是说,如果当前日期正好是用户 18 岁的
生日,则验证通过,但如果是 123 岁则验证不会通过。