d/m/y 格式的 laravel 中的无效日期格式问题
Invalid date format issue in laravel for d/m/y format
在我的 laravel 应用程序中,我有一个输入字段来插入出生日期,
我的日期格式必须是 d/m/y
,我的年龄限制必须是 18-70 岁
在我的控制器的 store
方法中,我有以下 dob 验证规则。
'date_of_birth'=>['required','bail','date','date_format:d/m/y',function ($attribute, $value, $fail) {
$age=Carbon::createFromFormat('d/m/y', $value)->diff(Carbon::now())->y;
if($age<18||$age>70){
$fail('Âge invalide. l\'âge devrait être 18-70');
}
},]
但每次当我尝试提交带有正确日期的表单时,例如 23/12/1995
,它总是说日期格式无效
在函数中使用format
方法
$age=Carbon::createFromFormat('d/m/y', $value)->diff(Carbon::now())->format('%y');
您的代码有两个问题:
1- 您应该从验证中删除 'date',因为您传递的是字符串而不是日期。
2- 你应该更正格式是正确的:'d/m/Y' Y 是大写字母。
$rules = ['date_of_birth' => ['required', 'bail', 'date_format:d/m/Y',
function ($attribute, $value, $fail) {
$age = Carbon::createFromFormat('d/m/Y', $value)->diff(Carbon::now())->y;
if ($age < 18 || $age > 70) {
$fail('Âge invalide. l\'âge devrait être 18-70');
}
},
]];
在我的 laravel 应用程序中,我有一个输入字段来插入出生日期,
我的日期格式必须是 d/m/y
,我的年龄限制必须是 18-70 岁
在我的控制器的 store
方法中,我有以下 dob 验证规则。
'date_of_birth'=>['required','bail','date','date_format:d/m/y',function ($attribute, $value, $fail) {
$age=Carbon::createFromFormat('d/m/y', $value)->diff(Carbon::now())->y;
if($age<18||$age>70){
$fail('Âge invalide. l\'âge devrait être 18-70');
}
},]
但每次当我尝试提交带有正确日期的表单时,例如 23/12/1995
,它总是说日期格式无效
在函数中使用format
方法
$age=Carbon::createFromFormat('d/m/y', $value)->diff(Carbon::now())->format('%y');
您的代码有两个问题:
1- 您应该从验证中删除 'date',因为您传递的是字符串而不是日期。
2- 你应该更正格式是正确的:'d/m/Y' Y 是大写字母。
$rules = ['date_of_birth' => ['required', 'bail', 'date_format:d/m/Y',
function ($attribute, $value, $fail) {
$age = Carbon::createFromFormat('d/m/Y', $value)->diff(Carbon::now())->y;
if ($age < 18 || $age > 70) {
$fail('Âge invalide. l\'âge devrait être 18-70');
}
},
]];