dd/mm/yyyy yii2 格式日期验证
dd/mm/yyyy format date validation in yii2
我想验证日期字段只接受 (dd/mm/yyyy)
格式,例如
(14/11/1993)
此外,如果月份是二月,则不应接受第 30 天和第 31 天。请帮助任何人,我已经尝试过下面的模式,但它在 Yii 2 中不起作用。它在 [=14 中显示错误=]
[
['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'
],
public function rules()
{
return [
['dateofbirth', 'date', 'format' => 'dd/MM/yyyy'],
];
}
另一种方法取自 this answer。
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');
}
}
尝试
(/^((0[1-9]|[12][0-9]|3[01])(/)(0[13578]|1[02]))|((0[1-9]|[12][0-9])(/)(02))|((0[1-9]|[12][0-9]|3[0])(/)(0[469]|11))(/)\d{4}$/)
或
(^((0[1-9]|[12][0-9]|3[01])(/)(0[13578]|1[02]))|((0[1-9]|[12][0-9])(/)(02))|((0[1-9]|[12][0-9]|3[0])(/)(0[469]|11))(/)\d{4}$)
那个对我很有效
public function rules()
{
return [
['dateofbirth', 'date', 'format' => 'php:Y-m-d'];
];
}
这里有更多信息YII2 DateValidator docs
我想验证日期字段只接受 (dd/mm/yyyy)
格式,例如
(14/11/1993)
此外,如果月份是二月,则不应接受第 30 天和第 31 天。请帮助任何人,我已经尝试过下面的模式,但它在 Yii 2 中不起作用。它在 [=14 中显示错误=]
[
['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'
],
public function rules()
{
return [
['dateofbirth', 'date', 'format' => 'dd/MM/yyyy'],
];
}
另一种方法取自 this answer。
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');
}
}
尝试
(/^((0[1-9]|[12][0-9]|3[01])(/)(0[13578]|1[02]))|((0[1-9]|[12][0-9])(/)(02))|((0[1-9]|[12][0-9]|3[0])(/)(0[469]|11))(/)\d{4}$/)
或
(^((0[1-9]|[12][0-9]|3[01])(/)(0[13578]|1[02]))|((0[1-9]|[12][0-9])(/)(02))|((0[1-9]|[12][0-9]|3[0])(/)(0[469]|11))(/)\d{4}$)
那个对我很有效
public function rules()
{
return [
['dateofbirth', 'date', 'format' => 'php:Y-m-d'];
];
}
这里有更多信息YII2 DateValidator docs