在我的数据库中,我的日期字段格式为Y-m-d H:i:s
。我想要的是,在数据库中添加新项目时,此日期总是比这个时刻更大。我用laravel的验证器检查了这个:
Validator::make->($request->all(), [
'date'=>'date|after:'.date(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.'
];
我现在的问题是,如何格式化:date
属性。任何帮助将不胜感激。
我已经尝试过了:
'after' => 'The :attribute must be date after'.date(format, strtotime(':date'))
但它没有做任何事情。
答案 0 :(得分:1)
我不确定是否可以解决您的问题,但我对此进行了测试:
$dateFormat = 'j.n.Y';
$this->validate($request, [
'date' => 'date_format:'.$dateFormat.'|after:' . now()->format($dateFormat)
]);
,它似乎有效。
更改$dateFormat
,它可以正确显示错误。
答案 1 :(得分:0)
日期将始终传递到PHP strtotime函数。
要使日期始终大于此刻,您只需使用 now 这一术语即可。 Laravel非常简单,如下所示。
Validator::make->($request->all(), [
'date'=>'date|after:now'
]);