我正在尝试在我的php脚本中添加生日验证功能,以确保用户是18岁以上。但我仍然坚持如何在if语句中添加它。
这是从输入字段中获取的内容:
$ydob = ($_POST['ydob']);
$mdob =($_POST['mdob']);
$ddob = ($_POST['ddob']);
$dob = $ddob."-".$mdob."-".$ydob;
功能:
function validateDOB($dob){
list($ydob,$mdob,$ddob) = explode("-",$dob);
$year_diff = date("Y") - $ydob;
$month_diff = date("m") - $mdob;
$day_diff = date("d") - $ddob;
if ($day_diff < 0 || $month_diff < 0) {
$year_diff--;
return $year_diff;
} }
此块用于检查是否正确输入了所有详细信息。 所以我的问题是如何在此处添加此功能以验证用户是否超过18岁。
if((!$username) || (!$country) || (!$dob) || (!$email) || (!$password)){
$error_message = "You did not submit the following required information!<br /><br />";
if(!$username){
$error_message .= "Enter a User Name";
} else if(!$country){
$error_message .= "Enter a Country";
} else if(!$dob){
$error_message .= "Enter a D.O.B";
} else if(!$email){
$error_message .= "Enter a Email Address";
} else if(!$password){
$error_message .= "Enter a Password";
}
} else {
....}
非常感谢你。 射线
答案 0 :(得分:2)
你必须在你的else语句中添加:
else {
if(validateDOB($dob) <18)
{
$error_message .= "Not old enough<br />";
}
}
答案 1 :(得分:2)
有一种更简单的方法:
function validateDOB($date)
{
$minAge=strtotime("-18 YEAR");
$entrantAge= strtotime($date);
if ($entrantAge < $minAge)
{
return false;
}
return true;
}
然后:
if(validateDOB($date))
{
echo "Welcome";
}
else
{
echo "Sorry, you are too young";
}
编辑:要将您的日期从欧洲日期格式转换为MySQL格式,您可以这样做:
$ymd = DateTime::createFromFormat('d-m-Y', $dmy)->format('Y-m-d');
您可以在将其传递给函数之前执行此操作,或者您可以在函数内部执行此操作。由你决定。
答案 2 :(得分:0)
$date = '2010-11-05 18:55:21';
if (strtotime($date) !== false)
{
...
}
答案 3 :(得分:0)
此Function
仅在有效日期(也是闰年)时返回True
,如果不符合您的应用程序的最低年龄要求,则会抛出FALSE
。在最佳社交网络上找到我Fun n Enjoy(http://www.myfne.com/ravinder)
function checkDOB($minage="-18 YEAR")
{
if(checkdate( $_POST["dob_month"] , $_POST["dob_day"] , $_POST["dob_year"])==TRUE){
return true;
}
$date=$_POST["dob_month"]."-".$_POST["dob_day"]."-".$_POST["dob_year"];
$minAge=strtotime($minage);
$entrantAge= strtotime($date);
if ($entrantAge > $minAge)
{
return true;
}
return false;
}