只是想知道,我可以这样做来验证用户输入的日期超过18岁吗?
//Validate for users over 18 only
function time($then, $min)
{
$then = strtotime('March 23, 1988');
//The age to be over, over +18
$min = strtotime('+18 years', $then);
echo $min;
if (time() < $min) {
die('Not 18');
}
}
刚刚偶然发现了这个函数date_diff:http://www.php.net/manual/en/function.date-diff.php看起来,更有希望。
7条答案
按热度按时间ekqde3dh1#
为什么不呢?对我来说唯一的问题,是用户界面-你如何优雅地向用户发送错误信息。
另一方面,由于您没有输入正确的生日(您使用的是固定生日),函数可能无法正常工作。您应该将“March 23,1988”更改为$then
或者您可以:
4uqofj5v2#
这是我在多伦多的银行系统中使用的一个简化的摘录,它总是完美地工作,考虑到闰年的366天。
mxg2im7a3#
我认为最好使用DateTime类来实现这一点。
DateTime::diff还可以用于比较日期和当前日期。
B:1)对于第二种方法,如果$bday比$today大18年或更多,则返回更早的日期,因此请确保输入的日期小于$today。2)DateTime适用于php 5.2.0及更高版本
goucqfw64#
......但是,不考虑闰年
ttygqcqt5#
HTML输入:
PHP代码:
dohp0rv56#
f4t66c6m7#
php文件
HTML代码: