所以我在CI框架中有一个表单,用户可以选择日期,也可以选择过去的日期。但我不希望用户能够选择过去的日期。因此,例如,如果有人填写表格,他们就无法在04-04-2018(今天)之前选择日期。这就是我想要的。现在有人可以选择1980年的日期,例如
这是我视图中的表单代码:
<?php echo form_open('index.php/Jongeren_activiteiten/Add_activiteit'); ?>
<br>
<center>Naam van activiteit:</center>
<div class="form-group">
<input class="form-control" name="activiteit" id="activiteit" type="text">
</div>
<center>Begindatum:</center>
<div class="form-group">
<input class="form-control" name="begindatum" id="begindatum" placeholder="Startdatum cursus" type="date">
</div>
<center>Einddatum:</center>
<div class="form-group">
<input class="form-control" name="einddatum" id="einddatum" placeholder="einddatum cursus" type="date">
</div>
<div>
<button class="btn btn-primary" name="Add_activiteit" >Toevoegen</button>
</div>
</form>
beginddatum和einddatum都是约会。
具有验证规则的表单的控制器功能:
public function Add_activiteit()
{
if (isset($_POST['Add_activiteit'])) {
$this->form_validation->set_rules('activiteit', 'Activiteit', 'required|is_unique[activiteit.activiteit]');
$this->form_validation->set_rules('begindatum', 'Begindatum', 'required');
$this->form_validation->set_rules('einddatum', 'Einddatum', 'required');
//If form validation true
if ($this->form_validation->run() == TRUE) {
// echo 'form validated';
$data = array (
'activiteit'=>$_POST['activiteit'],
'begindatum'=>$_POST['begindatum'],
'einddatum'=>$_POST['einddatum'],
);
$this->db->insert('activiteit',$data);
$this->session->set_flashdata("success", "u heeft een nieuwe activiteit toegevoegd");
redirect("index.php/Jongeren_activiteiten", "refresh");
}
}
}
所以,我怎么能解决这个问题?可能与表单验证规则?
感谢任何帮助表示赞赏
答案 0 :(得分:0)
您可以将日期与DateTime
类
$begindatum = $_POST['begindatum'];
$date = new DateTime($begindatum)->format('Y-m-d');
$today = new DateTime()->format('Y-m-d');
if($date < $today) {
echo 'Date is in the past';
}
如果要使用CI表单验证,可以添加类似此'rules' => 'required|compare_date'
的回调函数。在compare_date()
函数中,您可以使用上面的代码
答案 1 :(得分:0)
在客户端使用HTML5验证,以便您的html
<div class="form-group">
<input class="form-control" name="begindatum" id="begindatum" placeholder="Startdatum cursus" min="<?php echo $today_date;?>" type="date">
</div>
对于codeigniter,使用自定义验证规则
function custom_date_validation($date)
{
//return true or false
}
//then used it you form validation
$this->form_validation->set_rules('begindatum', 'Begindatum', 'required|callback_custom_date_validation');