有誰知道如何驗證日期。例如,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. JavaScript - 驗證日期
- 10. VB.Net驗證日期
- 11. Javascript日期驗證
- 12. 日期驗證JavaScript
- 13. TextBox日期驗證
- 14. MVC3日期驗證
- 15. javascript日期驗證
- 16. Awk日期驗證
- 17. jquery日期驗證
- 18. JavaScript驗證日期
- 19. 驗證primefaces日期
- 20. 驗證到期日期
- 21. 使用jQuery驗證的日期驗證
- 22. Laravel - 驗證日期特定日期
- 23. 從日期到日期驗證?
- 24. 無效日期的Jquery日期驗證
- 25. XSD日期或無日期驗證
- 26. asp.net比較驗證日期星期日
- 27. AngularJS當前日期驗證
- 28. 日期驗證android java
- 29. 日期選取器驗證
- 30. 使用javascript驗證日期?
你一定會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