我希望验证日期字段仅接受(dd/mm/yyyy)格式,例如
(14/11/1993)此外,如果月份是二月,它不应该接受第30天和第31天。请帮助任何人,我已经尝试了下面的模式,但它在Yii 2中不起作用。它显示了RegularExpressionValidator.php中的错误
[
['dateofbirth'],
'match',
'pattern' => '/^((([1-2][0-9])|([1-9]))/([2])/[0-9]{4})|((([1-2][0-9])|([1-9])|(3[0-1]))/((1[0-2])|([3-9])|([1]))/[0-9]{4})$/',
'message' =>'Invalid date'
],发布于 2016-12-08 07:39:30
try
(/^((01-9|12|301)(/)(013578|102))|((01-9|12)(/)(02))|((01-9|12|3)(/)(0469|11))(/)\d{4}$/)
或
(^((01-9|12|301)(/)(013578|102))|((01-9|12)(/)(02))|((01-9|12|3)(/)(0469|11))(/)\d{4}$)
发布于 2016-12-08 07:27:26
public function rules()
{
return [
['dateofbirth', 'date', 'format' => 'dd/MM/yyyy'],
];
}另一种方法是从这个答案那里采取的。
public function rules()
{
return [
['dateofbirth', 'validateDateOfBirth'],
];
}
public function validateDateOfBirth($attribute)
{
$dateTime = DateTime::createFromFormat('d/m/Y', $this->$attribute);
$errors = DateTime::getLastErrors();
if (!empty($errors['warning_count'])) {
$this->addError($attribute, 'Invalid date');
}
}发布于 2016-12-08 08:38:55
那个对我很好
public function rules()
{
return [
['dateofbirth', 'date', 'format' => 'php:Y-m-d'];
];
}下面是关于那个YII2 DateValidator文档的更多信息
https://stackoverflow.com/questions/41033077
复制相似问题