有谁知道如何验证日期。例如,cannot have 30 Feb
和no 31 in certain month
,所以当用户输入有效时,它将被拒绝。我正在考虑回拨功能,但不知道如何完成。Codeigniter:日期验证
0
A
回答
2
使用PHP checkdate功能
使用this guide在笨创建回调函数创建一个回调函数。
0
您可以使用简单的正则表达式来验证日期dd-mm-yyyy
格式
$this->form_validation->set_rules('dob', 'Date in dd-mm-yyyy',
'regex_match[(0[1-9]|1[0-9]|2[0-9]|3(0|1))-(0[1-9]|1[0-2])-\d{4}]');
使用callback
确认这将确保月月这是28天使用
//Add a rule for validation
$this->form_validation->set_rules('dob', 'Date of Birth', 'callback_valid_date');
//Define a callback and pass the format of date
public function valid_date($date, $format = 'Y-m-d')
{
$d = DateTime::createFromFormat($format, $date);
//Check for valid date in given format
if($d && $d->format($format) == $date) {
return true;
} else {
$this->form_validation->set_message('valid_date',
'The %s date is not valid it should match this ('.$format.') format');
return false;
}
}
1
尝试这样做的代码也考虑闰年
function valid_date($date)
{
$pattern = '/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/';
if(preg_match($pattern, $date))
{
return true;
}
else
{
$this->form_validation->set_message('valid_date', 'The %s is not valid it should match this dd/md/yyyy format');
return false;
}
}
//and just use this to set rules
$this->form_validation->set_rules('Your date field from html', 'date', 'required|callback_valid_date');
相关问题
- 1. Codeigniter:验证 - 日期不超过两个日期
- 2. 日期验证
- 3. 日期验证
- 4. 日期验证
- 5. 日期验证
- 6. 日期验证
- 7. 日期验证
- 8. 日期验证
- 9. cakephp日期验证
- 10. MVC3日期验证
- 11. Python,日期验证
- 12. javascript日期验证
- 13. 日期验证JavaScript
- 14. jquery日期验证
- 15. 日期验证VB6
- 16. 验证的日期
- 17. GWT - 验证日期
- 18. Javascript日期验证
- 19. javascript日期验证
- 20. PHP验证日期
- 21. JavaScript验证日期
- 22. java验证日期
- 23. VB.Net验证日期
- 24. 验证primefaces日期
- 25. 验证日期值
- 26. JSP日期验证
- 27. javascript日期验证
- 28. Awk日期验证
- 29. 验证MMDDYYYY日期
- 30. 日期/月验证
你一定会n eed使用回调。您如何决定接近回调将取决于您的需求以及您要求和希望获得的输入类型。您可以考虑实现PHP的DateTime类的回调。无效的输入将返回false,并且回调会执行相同的操作。或者,如果您使用的是特定格式,则可以使用date_create_from_format()。再次,这取决于你的要求。 – 2015-02-11 04:34:03
使用任何jquery日历日历插件在文本字段中添加日期它会给你适当的日期 – umefarooq 2015-02-11 04:43:14
有没有任何指南呢?谢谢 – Outliers 2015-02-11 05:03:24