我有两个日期字段,用于从用户收集数据.需要使用codeigniter表单验证类对其进行验证.
场景:
>第一个日期字段可以为空
>第二日期字段不能为空
>首个日期字段不应大于今天的日期
>第二个日期字段应大于第一个日期字段
$this-> form_validation-> set_rules(‘first_field’,’First Field’,’trim | required’);
$this-> form_validation-> set_rules(‘second_field’,’Second Field’,’trim | required | callback_check_equal_less [‘.$this-> input-> post(‘first_field’).’]’);;
回调函数为:
function check_equal_less($second_field,$first_field)
{
if ($second_field <= $first_field)
{
$this->form_validation->set_message('check_equal_less', 'The First &/or Second fields have errors.');
return false;
}
else
{
return true;
}
}
解决方法:
如果您使用适当的日期,只需将其与strtotime进行转换,则比较会很容易
这是修改后的功能
function check_equal_less($second_field,$first_field)
{
if (strtotoime($second_field) <= strtotime($first_field))
{
$this->form_validation->set_message('check_equal_less', 'The First &/or Second fields have errors.');
return false;
}
else
{
return true;
}
}