Php 使用Laravel 5格式化验证消息中的日期

Php 使用Laravel 5格式化验证消息中的日期,php,validation,laravel-5,formatdatetime,Php,Validation,Laravel 5,Formatdatetime,在我的数据库中,日期字段的格式为Y-m-dh:i:s。我想要的是,当在数据库中添加新项目时,这个日期总是比现在大。我通过laravel的验证器进行检查: Validator::make->($request->all()[ “日期”=>“日期”在:'之后。日期(Y-m-d H:i:s) ]); 问题是,我的页面使用不同的语言,每种语言都有不同的日期格式。有时我想要默认格式,有时我想要d.m.Y H:I:s,等等。。 我在resources/lang目录中翻译了不同的语言。对于验证,我翻译了现有的

在我的数据库中,日期字段的格式为
Y-m-dh:i:s
。我想要的是,当在数据库中添加新项目时,这个日期总是比现在大。我通过laravel的验证器进行检查:

Validator::make->($request->all()[
“日期”=>“日期”在:'之后。日期(Y-m-d H:i:s)
]);

问题是,我的页面使用不同的语言,每种语言都有不同的日期格式。有时我想要默认格式,有时我想要
d.m.Y H:I:s
,等等。。 我在
resources/lang
目录中翻译了不同的语言。对于验证,我翻译了现有的
validation.php
文件,但问题是,我不知道如何格式化日期,如果这种方法可行的话。现在,我的日期总是默认格式,即我比较输入的日期。我的
validation.php
文件如下所示:

<?php

return [
   'after' => 'The :attribute must be a date after :date.'
];

但是它没有任何作用。

日期将始终传递到PHP strotime函数中

要使日期始终大于此刻,只需使用术语“现在”。 Laravel将其变得非常简单,如下所示

Validator::make->($request->all(), [
 'date'=>'date|after:now'
]);

我不确定它是否解决了您的问题,但我测试了这个:

$dateFormat = 'j.n.Y';
$this->validate($request, [
  'date' => 'date_format:'.$dateFormat.'|after:' . now()->format($dateFormat)
]);
这似乎奏效了。
更改
$dateFormat
,它会正确显示错误。

谢谢您的回答,但这实际上不是我想要的。我的验证工作正常,我遇到的问题是验证消息中的日期格式问题。即使我使用您的方法,将“现在”放在属性中并进行翻译,验证消息仍然返回:date as now。如果“现在”被翻译,我会感到满意,但我仍然更喜欢acutal date。
$dateFormat = 'j.n.Y';
$this->validate($request, [
  'date' => 'date_format:'.$dateFormat.'|after:' . now()->format($dateFormat)
]);