我只需要一个简单的日期格式 mm/dd/yyyy 验证...
$rules = array(
'renewal_date' => array('required', 'date_format:?')
);
我将日期格式设置为什么?Laravel 文档可能会更好。
我只需要一个简单的日期格式 mm/dd/yyyy 验证...
$rules = array(
'renewal_date' => array('required', 'date_format:?')
);
我将日期格式设置为什么?Laravel 文档可能会更好。
文档对我来说很清楚,你应该使用
日期格式:格式
“正在验证的字段必须匹配根据date_parse_from_format PHP 函数定义的格式。”
看着它:http://php.net/manual/en/function.date-parse-from-format.php,我看到你可以这样做:
$rules = array(
'renewal_date' => array('required', 'date_format:"m/d/Y"')
);
这是对它的纯 PHP 测试:
print_r(date_parse_from_format("m/d/Y", "04/01/2013"));
你也可以在 Laravel 中手动进行测试:
$v = Validator::make(['date' => '09/26/13'], ['date' => 'date_format:"m/d/Y"']);
var_dump( $v->passes() );
对我来说是印刷
布尔真
我遇到了类似的问题,但使用的是 ad/m/Y 日期格式。就我而言,问题是我为同一字段定义了“日期”和“日期格式”规则:
public static $rules = array(
'birthday' => 'required|date|date_format:"d/m/Y"',
...
解决方案是删除“日期”验证器:您不能同时使用. 像这样:
public static $rules = array(
'birthday' => 'required|date_format:"d/m/Y"',
...
在那之后,一切都很好。
解决方法:
'renewal_date' => array('required', 'date_format:m/d/Y', 'regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/')
你应该使用double quote
like"Y-m-d H:i:s"
$rules = array(
'renewal_date' => array('required', 'date_format:"m/d/Y"')
^ ^ this ones
);
GitHub上关于这个问题的讨论: https ://github.com/laravel/laravel/pull/1192
date_format 对我不起作用,所以我做了这个自定义验证
Validator::extend('customdate', function($attribute, $value, $parameters) {
$parsed_date = date_parse_from_format ( "Y-m-d" , $value);
$year = $parsed_date['year'];
$month = $parsed_date['month'];
$month = $month <= 9 ? "0" . $month : $month;
$day = $parsed_date['day'];
$day = $day <= 9 ? "0" . $day : $day;
return checkdate($month, $day, $year);
});
$validation = Validator::make(
array('date' => $num),
array('date' => 'customdate')
);
使用 PHP date_parse_from_format
(Laravel 4):
'birthday' => 'date_format:m/d/Y'
您的验证消息也将使用"m/d/Y"
普通用户无法理解的内容。
生日与 m/d/Y 格式不匹配
建议针对此无效响应自定义您的消息。 生日与 mm/dd/yyyy 格式不匹配
来源:点击这里
你可以使用喜欢
$rules = [
'start_date' => 'date_format:d/m/Y|after:tomorrow',
'end_date' => 'date_format:d/m/Y|after:start_date',
];