Laravel 验证 Moment.js 日期

Laravel Validate Moment.js Date

我正在尝试验证 Laravel 中的日期范围,其中数据是从我的 Angular Javascript 发送的。

前端 Angular 使用 moment.js 发送日期范围,如下所示:

            var endDate = moment();
            var startDate = moment().subtract(29, 'days');

            var apiDateRange = {
                'startDate': startDate.format(),
                'endDate': endDate.format()
            };

在控制台中,我可以看到日期是这样发布的:

endDate     2015-09-14T15:39:53+05:30
startDate   2015-08-16T15:39:53+05:30

我正在尝试验证 Laravel 中的日期。通过阅读文档,我发现我需要为此使用 date_format 。但是我弄错了格式。这是我到目前为止尝试过的,但显然是错误的:

$validator = Validator::make($postData, [
   'startDate' => 'date_format:"Y-m-d H:i:s.u"|required'
   'endDate' => 'date_format:"Y-m-d H:i:s.u"|required'
]);


// AND

$validator = Validator::make($postData, [
   'startDate' => 'date_format:"Y-m-d\TH:i:s"|required',
   'endDate' => 'date_format:"Y-m-d\TH:i:s"|required',
]);

我阅读了 php date 文档,但我对将 date_format 放在一起感到困惑。有人可以在这里帮助我吗?

我自己的问题的答案是。

我刚刚在发布问题后不久发现使用 laravel date 验证而不是使用 date_format 有效。这就是我现在拥有的:

$validator = Validator::make($postData, [
               'startDate' => 'date|required',
               'endDate' => 'date|required'
           ]);

格式化时不能像2015-06-10 01:10:25那样作为日期字符串传递

var format_to = 'YYYY-MM-DD HH:mm:ss';

var apiDateRange = {
   'startDate': startDate.format(format_to),
   'endDate': endDate.format(format_to)
};

此外,我认为像 'startDate' => 'required|date'

这样的验证更好