我正在尝试使用after
验证规则验证两个日期以确保一个日期大于另一个日期。我的规则设置如下:
$rules = array(
'date_from' => 'required|date_format:"d/m/Y"',
'date_to' => 'required|date_format:"d/m/Y"|after:date_from',
// more rules ...
);
使用以下值时:
date_from
=“01/06/2014”和date_to
=“01/06/2014”或date_to
=“2014年12月12日”一切都很笨拙,但是..使用任何超过12天的事情都会失败,即date_to
=“13/06/2014”至date_to
=“2014年6月31日”
我也尝试了这个,它给出了相同的结果:
$dateFromForm = Input::get('date_from');
$rules = array(
'date_from' => 'required|date_format:"d/m/Y"',
'date_to' => 'required|date_format:"d/m/Y"|after:' . $dateFromForm,
);
很明显,我正在读这个月的日子,任何想法我在这里做错了吗?
由于
答案 0 :(得分:6)
如果你看一下Laravel文档 - 它说
日期将传递给PHP strtotime函数。
strtotime
的问题在于它假设您使用m/d/Y
。如果您需要d/m/Y
- 您需要将其更改为d-m-Y
才能正确解析。
因此,请将日期格式更改为d-m-Y
,然后才能生效。