2014-06-05 66 views
3

我试图验证两个日期以确保一个使用after验证规则的日期大于另一个日期。我有我的规则设置是这样的:Laravel-经过日期验证,使用规则集中的日期

$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 = “2014年1月6日” 和date_to = “2014年1月6日” OR date_to =“2014年12月6日“一切都是hunky dory,但是..使用任何12日以上的日子不成功,例如date_to =”13/06/2014“到date_to =”31/06/2014“

我也试过这个,它给出了相同的结果:

$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, 
); 

对我来说很明显,它是在阅读当月的一天,任何想法我在这里做错了?

感谢

回答

5

如果你看一下Laravel文档 - 它说

日期将被传递到PHP的strtotime功能。

strtotime的问题是它假设您使用的是m/d/Y。如果您需要d/m/Y - 您需要将其更改为d-m-Y才能正确解析。

因此,改变你的日期格式为d-m-Y,它会工作。

+0

马上工作,非常感谢!当SO让我接受答案时:D – haakym