我有一份带有所需出生日期的登记表。
<tr>
<td><span class="required">*</span> <?php echo $entry_dob; ?></td>
<td><input type="text" id="dob" name="dob" value="<?php echo $dob; ?>" /><p id="age"></p>
<?php if ($error_dob) { ?>
<span class="error"><?php echo $error_dob; ?></span>
<?php } ?>
所以在我的php控制器文件中[我使用的是MVC编码的软件],我有以下功能来完成所需的字段:
if ((strlen(utf8_decode($this->request->post['dob'])) < 3) || (strlen(utf8_decode($this->request->post['dob'])) > 32)) {
$this->error['dob'] = $this->language->get('error_dob');
}
我还需要验证用户是否至少19岁。如果他/她不是,将显示错误,我在同一个php控制器文件中使用以下函数来实现此目的:
$allowed_age = 19;
$bdate = strtotime($_REQUEST['dob']);
$age = (time()-$bdate)/31536000;
if($age < $allowed_age) {
$this->error['dob'] = $this->language->get('error_dob');
}
我测试了它,似乎工作正常。但是,我想知道如何一次验证这两件事。我的意思是,验证用户是否输入了dob,以及年龄是否超过19岁。
我不是专家,所以如果您知道更好的方法,请分享。
最诚挚的问候,
Codekmarv
答案 0 :(得分:2)
用它来获得年龄
$age = floor( (strtotime(date('Y-m-d')) - strtotime($this->request->post['dob'])) / 31556926);
然后取$age
值并在条件
if (((strlen(utf8_decode($this->request->post['dob'])) < 3) || (strlen(utf8_decode($this->request->post['dob'])) > 32))
&& $age < 19) {
$this->error['dob'] = $this->language->get('error_dob');
}
它将检查用户是否输入了一个值且年龄大于19。
您必须使用&&
运算符来检查多个条件。